我是一个初学者学习JavaScript。
$('.btn').on('click', function(){
let i = 0;
while (i < 5) {
$(this).closest('.number').val(i)
i++;
}
})
个字符
我的输出:
<div class="btn">Sort</div>
<input type="text" class="number" data-id="1" value="1">
<input type="text" class="number" data-id="5" value="2">
<input type="text" class="number" data-id="4" value="3">
<input type="text" class="number" data-id="3" value="4">
<input type="text" class="number" data-id="2" value="5">
型
当点击.btn
时,all value sort:1,2,3,4,5
不会被保存。帮我解决这个问题。
2条答案
按热度按时间v2g6jxz61#
如果我理解正确的话,您希望“按钮”按照1-5的顺序更新
input
元素的值?首先,您可能误解了
.closest()
是这样的。它在DOM层次结构中寻找“最接近”的匹配元素。.number
元素不是.btn
元素的父元素/祖先元素,因此它们都不会匹配。您可以通过以下命令找到
.number
元素:$('.number')
个然后,您可以使用
.each()
循环遍历这些元素。回调的第一个参数是结果集合中该元素的 index。它是从零开始的,所以只需添加1
即可。举例来说:个字符
cfh9epnr2#
使用
.each
循环的一个更简单的方法是向.val
传递一个回调函数,第一个参数是索引。个字符