如何使用jQuery在p
标签之间总计字符数?
我试着:
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
我该怎么办?
答案 0 :(得分:2)
var total = 0
$('b').each(function(index, element) {
total += $(element).text().length;
})
alert(total);
答案 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());
如果您有兴趣,甚至是这个:
$.fn.Sum = function()
{
var result = 0;
$(this).each(
function()
{
result += this;
}
);
return result;
};
alert($("b").map(function () { return parseInt($(this).text()); }).Sum());
最后我最喜欢的是:
$.fn.Sum = function(action)
{
var result = 0;
$(this).each(
function()
{
result += action.call(this);
}
);
return result;
};
alert($("b").Sum(function () { return parseInt($(this).text()); }));