为什么我不能使用以下代码更改每个年龄=“数字”?我在属性()中遗漏了什么吗?
<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);
});
答案 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对象,因此您不能将其转换为字符串,绝对不能转换为数字(使用+
)。此外,我从未见过传递给遍历函数的函数。我就是这样做的:
$("body").on("click", function () {
$('#people li').each(function() {
$(this).attr('age', $('span:nth-child(4)', this).text());
});
});