jquery的总数

时间:2012-11-17 21:23:37

标签: javascript jquery

如何使用jQuery在p标签之间总计字符数?

我试着:

DEMO

HTML:

<b>1</b>
<b>1</b>
<b>1</b>

JS:

var tBytes = 0,
    tFiles = $('b').length;
for (var tFileId = 0; tFileId < tFiles; tFileId++) {
    tBytes += $('b').text();
}
alert(tBytes);​ // Output is : 0111111111 I want output as: 3

我该怎么办?

5 个答案:

答案 0 :(得分:2)

var total = 0
$('b').each(function(index, element) {
    total += $(element).text().length;
})
alert(total);​

http://jsfiddle.net/TPFkF/2/

答案 1 :(得分:1)

$('b').each(function(){
total += parseInt($(this).text());
})

答案 2 :(得分:1)

var tBytes = 0,
    tFiles = $('b').length;
$('b').each(function(){
    tBytes += parseInt($(this).text(),10);
});
console.log(tBytes);

<强> jsFiddle example

答案 3 :(得分:0)

你也可以很容易地在纯javascript中完成它,不需要jquery:

var tBytes  = 0,
    tFiles= document.getElementsByTagName('b');

for(var i=0,z=tFiles.length;i<z;i++) { 
    tBytes += +(tFiles[i].textContent || tFiles[i].innerText);
}

alert(tBytes);​

答案 4 :(得分:0)

您还可以查看以下代码:

Array.prototype.Sum = function()
{
    var result = 0;

    $(this).each(
        function()
        {
             result += this;
        }
    );

    return result;
};

alert($("b").map(function () { return parseInt($(this).text()); }).toArray().Sum());

JSFiddle here

如果您有兴趣,甚至是这个:

$.fn.Sum = function()
{
    var result = 0;

    $(this).each(
        function()
        {
             result += this;
        }
    );

    return result;
};

alert($("b").map(function () { return parseInt($(this).text()); }).Sum());

JSFiddle here

最后我最喜欢的是:

$.fn.Sum = function(action)
{
    var result = 0;

    $(this).each(
        function()
        {
             result += action.call(this);
        }
    );

    return result;
};

alert($("b").Sum(function () { return parseInt($(this).text()); }));

JSFiddle here