我有这样的代码:
<a id="3" class="off area" name = "2" href="">Colchester</a>
<a id="1" class="off area" name = "1" href="">Leicester</a>
<a id="2" class="off area" name = "2" href="">London</a>
<a id="4" class="on area" name = "1" href="">Winchester</a>
对于具有“on”类的链接,我需要NAME属性的总和。 (即只有温彻斯特)。
$('.area .on').each(function() {
alert(this.id);
total += parseInt(this.id, 10);
});
我可以计算ID,但不能计算NAME属性。所以
total += parseInt(this.id, 10);
正在运作,但事实并非如此:
total += parseInt(this.attr('name'), 10);
答案 0 :(得分:3)
试试这个:
total += parseInt(this.name, 10);
原因是attr
用于jQuery对象,而不是直接用于this
关键字。
你可以通过这样做来改善它:
total += parseInt(this.name, 10) || 0;
确保始终将数值作为总和。
答案 1 :(得分:2)
您正尝试在DOM元素上调用jQuery方法( this
)
你需要这个 -
total += parseInt(this.name, 10);
或者
total += parseInt($(this).attr('name'), 10);
演示----->
http://jsfiddle.net/dtt7u/
答案 2 :(得分:1)
你要么:
total += parseInt(this.name, 10);
或:
total += parseInt($(this).attr('name'), 10);
顺便说一下,console.log()
使用alert()
。
答案 3 :(得分:1)
var sum = 0;
$('.area.on').each(function(index, elem) {
sum += parseInt($(elem).attr('name'));
});
.area.on
没有空间