我是jQuery的新手,似乎无法按照我的喜好使用以下代码:
<script type="text/javascript">
jQuery(document).ready(function($) {
$.fn.digits = function(text){
$(this).text(text.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") + '€' );
};
var tempText = $.trim($("#price").text());
tempText = tempText.substr(0, parseInt(tempText.length) );
$("#price").digits(tempText);
});
</script>
应该将所有#price div中的数字转换为逗号分隔的货币版本:
1000000 = 1,000,000€
这对于页面上#price的第一个实例效果很好,但是如果同一ID在同一页面上出现多次,则其余脚本不会被格式化。
我发现DIV的音乐是独特的,因此我尝试改为将类改为(#price到.price),这可以解决问题,但现在却产生了一个新问题。现在,.price的所有实例都显示在.price的每个实例中-如果可以的话。
假设我在一页中有3次价格。
示例1(.price):200000
示例2(.price):250000
示例3(.price):300000
应显示:
200,000€
250,000€
300,000€
相反,它给了我
200,000€250,000€300,000€
200,000€250,000€300,000€
200,000€250,000€300,000€
那是为什么,我该如何解决?
谢谢!
答案 0 :(得分:0)
如果要影响多个元素,请使用类引用而不是div。
更改此行
$("#price").digits(tempText);
到
$(".price").digits(tempText);
因为类用于收集元素,并且div仅用于一次引用一个项目,所以它仅获取第一个div。
并且请记住,在使用$('。price')时,您必须使用循环,因为它们很多,所以您的代码就会变成
$.each('.price', function(o, v){
var tempText = $.trim($(this).text());
tempText = tempText.substr(0, parseInt(tempText.length) );
$(this).digits(tempText);
});
在所有条件都相同的情况下,这应该起作用...