如何引用div标签的Javascript函数来添加逗号?

时间:2012-07-31 17:57:13

标签: javascript jquery html comma

我是一个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页面上。

谢谢!

3 个答案:

答案 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]);
}

工作示例:http://jsfiddle.net/XpbJV/

答案 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的大多数迭代器版本的工作方式。

DEMO: http://jsfiddle.net/gprf6/