gpt4 book ai didi

javascript - 在for循环中选择项目

转载 作者:行者123 更新时间:2023-12-03 07:07:31 26 4
gpt4 key购买 nike

在这个 for 循环中为什么不循环所有输入?

我在 jquery 中尝试了每个它的工作..但我想使用 for 循环我错过了什么

我想向所有不具有类 .typeLimit 的输入添加类,并在循环中选择项目

https://jsfiddle.net/6v8arLqa/

var type = 'number';

for (var i = 0; i < $('input[data-type-limit="' + type + '"]').not('.typeLimit').length; i++) {
console.log(i)
var input = $('input[data-type-limit="' + type + '"]').not('.typeLimit').eq(i);
console.log(input)
input.addClass('typeLimit');
}


<input type="text" data-type-limit="number" placeholder=":1">
<input type="text" data-type-limit="number" placeholder=":2">
<input type="text" data-type-limit="number" placeholder=":3">
<input type="text" data-type-limit="number" placeholder=":4">
<input type="text" data-type-limit="number" placeholder=":5">
<input type="text" data-type-limit="number" placeholder=":6">
<input type="text" data-type-limit="number" placeholder=":7">
<input type="text" data-type-limit="number" placeholder=":8">
<input type="text" data-type-limit="number" placeholder=":9">
<input type="text" data-type-limit="number" placeholder=":10">

分别进行测试

$.each($('input[data-type-limit="' + type + '"]').not('.typeLimit'), function(i, val) {
console.log(i)
var input = $(this);
input.addClass('typeLimit');
});

最佳答案

因为每次执行循环时, $('input[data-type-limit="' + type + '"]').not('.typeLimit') 的内容> 正在发生变化,因此您将跳过一些元素。为了防止这个问题(并且更加高效),您可以缓存结果并解决这些问题。

var $noTypeLimit = $('input[data-type-limit="' + type + '"]').not('.typeLimit');
for (var i = 0; i < $noTypeLimit.length; i++) {
var $input = $noTypeLimit.eq(i);
$input.addClass('typeLimit');
}

或者,如果您所做的只是向它们添加一个类,则可以进一步简化它。

$('input[data-type-limit="' + type + '"]')
.not('.typeLimit')
.addClass('typeLimit');

关于javascript - 在for循环中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com