我是一个Javascript新手。。。我听说过jQuery,但不知道如何使用它,所以请容忍我在这里完全缺乏知识…:)
我正在将Excel数据库中的信息动态导入网站。它工作得很好,只是没有一个数字有逗号——这是一个格式问题,我不能在源代码中更改,所以我需要在网站代码中更改它。
相关的HTML代码如下所示:
<tr><td class="num">191025</td><td>Stuff</td><td class="num">$60</td></tr>
<tr><td class="num">184160</td><td>Other Stuff</td><td class="num">$15</td></tr>
我想使用Javascript(或jQuery-任何有效的)为所有现有的"num"类添加逗号(因此191025将显示为191025)。
我一直在浏览这个网站和其他网站,发现了这个网站:http://www.mredkj.com/javascript/nfbasic.html它有这个公共域代码:
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(d+)(d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
这看起来很棒,我把它添加到了我现有的外部.js页面中,我在html页面中引用了该页面。
然而,现在的问题是如何使用代码?看看那个页面上的例子,我似乎不得不做这样的事情:
<tr><td class="num">addCommas(191025)</td><td>Stuff</td><td class="num">$60</td></tr>
这是不现实的——有数百个这样的数字,我无法单独更新每一个。
我确信有一种方法,Javascript(或jQuery?)可以自动将编码应用于现有的"num"类,以插入逗号。。。但我不知道该怎么做。所以,所有这些都引出了我的问题:我如何有效地将这个(或其他更好的?)代码应用到div类中,以便添加逗号
我非常感谢任何帮助。。。但请记住我的新手身份,并让我知道需要在外部.js表&html页面上的内容。
谢谢!!
在页面加载时执行此代码:
$(".num").each(function() {
var self = $(this), text = self.text();
self.text(addCommas(text));
});
$('.num').each(function () {
$(this).text(addCommas($(this).text()));
});
javascript解决方案(在IE中不起作用,因为它不支持getElementsByClassName)
var elements = document.getElementsByClassName('num');
var textPropertyToUse; // cross-browser support
for (var i = 0; i < elements.length; i++) {
textPropertyToUse = 'textContent' in elements[i] ?
'textContent' :
'innerText';
elements[i][textPropertyToUse] = addCommas(elements[i][textPropertyToUse]);
}
工作示例:http://jsfiddle.net/XpbJV/
一个非常简单的jQuery解决方案是…
$(".num").text(addCommas);
只要您将addCommas
函数签名更改为。。。
function addCommas(i, nStr)
这将起作用,因为addCommas
将当前文本内容作为第二个参数,并返回更新后的文本内容。这就是jQuery方法的大多数迭代器版本的工作方式。
演示:http://jsfiddle.net/gprf6/