添加数据属性值作为内联-css "width" 值
Add data attiribute values as an inline-css "width" value
我有这样的代码:
<span class="bar" data-percent="25,6"></span>
<span class="bar" data-percent="40,6"></span>
<span class="bar" data-percent="10,6"></span>
<span class="bar" data-percent="60"></span>
我想获取数据百分比值,将逗号更改为点并将此值添加为跨度的宽度。
像这样:
<span class="bar" data-percent="25,6" style="width: 25.6%"></span>
$('span[class="bar"]').each(function(index, item) {
var a = $(item).data('percent');
a = a.replace(/,/g, '.') + '%';
$(item).width(a);
});
.bar {
height: 40px;
background: red;
display: block;
margin-bottom: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="bar" data-percent="25,6">First Span</span>
<span class="bar" data-percent="40,6">Second Span</span>
<span class="bar" data-percent="10,6">Third Span</span>
<span class="bar" data-percent="60">Fourth Span</span>
我写了一些jquery但是它不起作用,如果数据中没有逗号,jquery就不起作用。
https://jsfiddle.net/mod7910u/
感谢 Josh,这是最后一个有效的动画版本:
https://jsfiddle.net/mg4p5bmc/1/
问题是由于属性 data-percent="60"
值被视为数字。而其他属性值由于存在逗号而被视为字符串。由于值 60 是一个数字,因此 .replace()
方法会引发错误。
要解决此问题,只需在 .replace()
之前调用 .toString()
方法以确保该值为字符串。
var a = $(item).data('percent');
a = a.toString().replace(/,/g, '.') + '%';
您也可以使用 String()
构造函数将值转换为字符串:
var a = $(item).data('percent');
a = String(a).replace(/,/g, '.') + '%';
我有这样的代码:
<span class="bar" data-percent="25,6"></span>
<span class="bar" data-percent="40,6"></span>
<span class="bar" data-percent="10,6"></span>
<span class="bar" data-percent="60"></span>
我想获取数据百分比值,将逗号更改为点并将此值添加为跨度的宽度。
像这样:
<span class="bar" data-percent="25,6" style="width: 25.6%"></span>
$('span[class="bar"]').each(function(index, item) {
var a = $(item).data('percent');
a = a.replace(/,/g, '.') + '%';
$(item).width(a);
});
.bar {
height: 40px;
background: red;
display: block;
margin-bottom: 20px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="bar" data-percent="25,6">First Span</span>
<span class="bar" data-percent="40,6">Second Span</span>
<span class="bar" data-percent="10,6">Third Span</span>
<span class="bar" data-percent="60">Fourth Span</span>
我写了一些jquery但是它不起作用,如果数据中没有逗号,jquery就不起作用。
https://jsfiddle.net/mod7910u/
感谢 Josh,这是最后一个有效的动画版本: https://jsfiddle.net/mg4p5bmc/1/
问题是由于属性 data-percent="60"
值被视为数字。而其他属性值由于存在逗号而被视为字符串。由于值 60 是一个数字,因此 .replace()
方法会引发错误。
要解决此问题,只需在 .replace()
之前调用 .toString()
方法以确保该值为字符串。
var a = $(item).data('percent');
a = a.toString().replace(/,/g, '.') + '%';
您也可以使用 String()
构造函数将值转换为字符串:
var a = $(item).data('percent');
a = String(a).replace(/,/g, '.') + '%';