0

pjQueryでタグ間の文字数を合計するにはどうすればよいですか?

私は次のように試みます:

デモ

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

私は何をしますか?

</p>

4

5 に答える 5

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

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

于 2012-11-17T21:27:31.133 に答える
1
$('b').each(function(){
total += parseInt($(this).text());
})
于 2012-11-17T21:27:22.163 に答える
1
var tBytes = 0,
    tFiles = $('b').length;
$('b').each(function(){
    tBytes += parseInt($(this).text(),10);
});
console.log(tBytes);

jsFiddle の例

于 2012-11-17T21:29:32.720 に答える
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 ここ

または、興味がある場合はこれも:

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

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

    return result;
};

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

JSFiddle ここ

そして最後に私のお気に入りはこちら:

$.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 ここ

于 2012-11-17T21:47:15.873 に答える
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);​
于 2012-11-17T21:25:41.700 に答える