Jquery inArray 总是在循环中返回 -1
Jquery inArray always returns -1 in loop
我在使用Jquery inArray
时遇到了问题。
//Get selected devices
selectedDevices = $('.selectDevices').val();
console.log(selectedDevices);
//If nothing selected, do nothing
if(selectedDevices == null || selectedDevices == ""){}
//Else remove devices not selected
else{
//Loop thru table rows with class "enhet"
$.each( $('td.enhet'), function() {
thisDevice = $('.enhet').text();
var found = $.inArray(thisDevice, selectedDevices);
console.log(found);
if (found > -1) {
console.log(thisDevice);
}
else {
console.log('nope');
}
})
}
控制台.log(选定设备(给出:["GulAvformning", "RosaAvformning"]
控制台.log(找到(给:(每次!!-1
控制台.log(此设备(给出:
''
控制台.log("不"(给出:nope
即使thisdevice
存在于selectedDevices
我也会得到其他情况。
我错过了什么?
selectedDevices
是一个数组。我通过以下方式检查了它:控制台.log(选定的设备[1](;它给了我一个设备。
对元素使用 each()
方法,然后使用 $(this)
标识当前元素:
selectedDevices = $('.selectDevices').val();
console.log(selectedDevices);
//If nothing selected, do nothing
if(selectedDevices == null || selectedDevices == ""){}
//Else remove devices not selected
else{
//Loop thru table rows with class "enhet"
$('td.enhet').each( function() {
thisDevice = $(this).text(); // use $(this) here
var found = $.inArray(thisDevice, selectedDevices);
console.log(found);
if (found > -1) {
console.log(thisDevice);
}
else {
console.log('nope');
}
})
}
使用:
thisDevice = $(this).text();
而不是:
thisDevice = $('.enhet').text();
您正在迭代,但未选择迭代器。将您的行更改为以下内容:...
$.each( $('td.enhet'), function(i) {
thisDevice = $('td.enhet').eq(i).text();
。
如果console.log(selectedDevices)
给出["GulAvformning", "RosaAvformning"]
,而console.log(thisDevice)
给出""
,那么$.inArray(thisDevice, selectedDevices)
将返回-1
,因为["GulAvformning", "RosaAvformning"]
中没有""
。请参阅马科斯·佩雷斯·古德的解决方案,了解有关如何正确获取正确值thisDevice
的更多信息。
相关文章:
- Javascript返回值只在循环中返回一次
- 为什么要返回'这'在导致循环的JavaScript原型中
- 为循环嵌套的Javascript未按预期返回数组
- 使用for循环从Javascript中的函数返回多个值
- Foreach循环只返回最后一个值
- 用于循环随机返回的javascript
- 如何返回与 javascript 中循环的其余部分不同的第一个循环
- 如何使for循环等待回调返回值
- 虽然循环只返回最终结果
- 在for循环之后返回一个值
- 使用函数for循环遍历对象以更改值,然后返回结果
- 返回循环中调用的回调结果的串联
- 如何获取从循环返回的元素的索引
- 如果循环中至少有一个元素返回 false,如何将变量设置为 false
- Javascript返回循环和
- 使用Q.js按顺序返回循环的GET请求
- jQuery Deferred只返回循环中的最后一个值
- 返回循环getElementsByClassName不起作用
- 使用Javascript返回循环变量的值
- 全局变量只返回循环中最后一个实例的值