0

为什么我不能使用以下代码更改每个age="number" ?我的属性()中是否缺少某些内容?

<div id="people">
<li age="number">
<span>22</span>
<span>23</span>
<span>24</span>
<span>25</span>
<span>26</span>
</li>

<li age="number">
<span>22</span>
<span>23</span>
<span>24</span>
<span>25</span>
<span>26</span>
</li>

</div>



$("body").on("click", function(){
var x = $("#people").children( function(){
return $(this).find("span:nth-child(4)").text();
});
$("#people li").attr("age", + x);
});
4

3 回答 3

1

这是正常的。由于孩子们寻找孩子,它不会改变,所以结果是一个对象。

$("body").on("click", function(){

var x = $("#people span:nth-child(4)").text();
$("#people li").attr("age", + x);
});
于 2013-09-30T17:23:12.827 回答
0

我认为你的做法是错误的。x是一个 jQuery 对象,所以你不能只将它转换为字符串,而且绝对不能转换为数字(带有+)。此外,我从未见过传递给遍历函数的函数。这是我的做法:

http://jsfiddle.net/G2rzr/

$("body").on("click", function () {
    $('#people li').each(function() {
        $(this).attr('age', $('span:nth-child(4)', this).text());
    });
});
于 2013-09-30T18:45:48.753 回答
0
$("body").on("click", function(){
    var newAgeValue = $("#people span:nth-of-type(4)").text();  
    $("#people li").attr("age", newAgeValue);
});
于 2013-09-30T17:19:38.567 回答