-1

我有这样的代码:

<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);
4

4 回答 4

3

试试这个:

total += parseInt(this.name, 10);

原因被attr用于 jQuery 对象,而不是直接用于this关键字。

您可以通过以下方式使其变得更好:

total += parseInt(this.name, 10) || 0;

确保你总是得到一个数值作为总和。

于 2013-06-19T14:27:26.690 回答
2

您正在尝试在 DOM 元素 ( this)上调用 jQuery 方法

你需要这个 -

total += parseInt(this.name, 10);

或者

total += parseInt($(this).attr('name'), 10);

演示-----> http://jsfiddle.net/dtt7u/

于 2013-06-19T14:27:16.090 回答
1

要么你这样做:

total += parseInt(this.name, 10);

或者:

total += parseInt($(this).attr('name'), 10);

顺便说一句,使用console.log()over alert()

于 2013-06-19T14:28:50.853 回答
1
var sum = 0;
$('.area.on').each(function(index, elem) {
    sum += parseInt($(elem).attr('name'));
});

.area.on没有空间

于 2013-06-19T14:29:03.550 回答