我的属性不会随着jquery而改变

时间:2013-09-30 17:15:45

标签: jquery nested-attributes

为什么我不能使用以下代码更改每个年龄=“数字”?我在属性()中遗漏了什么吗?

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

3 个答案:

答案 0 :(得分:1)

这很正常。它不会因为孩子寻找孩子而改变,因此结果就是一个物体。

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

var x = $("#people span:nth-child(4)").text();
$("#people li").attr("age", + x);
});

答案 1 :(得分:0)

$("body").on("click", function(){
    var newAgeValue = $("#people span:nth-of-type(4)").text();  
    $("#people li").attr("age", newAgeValue);
});

答案 2 :(得分:0)

我认为你这是错误的做法。 x是一个jQuery对象,因此您不能将其转换为字符串,绝对不能转换为数字(使用+)。此外,我从未见过传递给遍历函数的函数。我就是这样做的:

http://jsfiddle.net/G2rzr/

$("body").on("click", function () {
    $('#people li').each(function() {
        $(this).attr('age', $('span:nth-child(4)', this).text());
    });
});