我是一个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将显示为191,025)。
我一直在寻找这个网站和其他人,发现这个网站: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;
}
这看起来很棒,我将它添加到我在html页面中引用的现有外部.js页面。
但是,现在的问题是如何使用代码?看一下该页面上的示例,看起来我必须做这样的事情:
<tr><td class="num">addCommas(191025)</td><td>Stuff</td><td class="num">$60</td></tr>
这是不现实的 - 有数百个这样的数字,而且我无法单独更新它们中的每一个。
我确信有一种方法Javascript(或jQuery?)可以自动将编码应用到现有的“num”类来插入逗号...但我不知道如何去做。所以,所有这些都让我想到了我的问题:如何有效地将这个(或其他 - 更好?)代码应用于div类以便添加逗号?
我非常感谢任何帮助...但请记住我的新手,并让我知道外部.js表格中需要注意什么?什么在.html页面上。
谢谢!
答案 0 :(得分:1)
jQuery解决方案:
$('.num').each(function () {
$(this).text(addCommas($(this).text()));
});
javascript解决方案(因为它不支持getElementsByClassName而赢得了在IE中的工作)
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]);
}
答案 1 :(得分:1)
在页面加载时执行此代码:
$(".num").each(function() {
var self = $(this), text = self.text();
self.text(addCommas(text));
});
答案 2 :(得分:0)
一个非常简单的jQuery解决方案就是......
$(".num").text(addCommas);
...只要您将addCommas
功能签名更改为此...
function addCommas(i, nStr)
这将起作用,因为您的addCommas
会将当前文本内容作为第二个参数,并返回更新的文本内容。这就是jQuery的大多数迭代器版本的工作方式。