我遇到了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');
}
})
}
Console.log(selectedDevices)给出:
["GulAvformning", "RosaAvformning"]
Console.log(找到)给:(每次!!)
-1
Console.log(thisDevice)给出:
``
Console.log('nope')给出:
nope
即使thisdevice
中存在selectedDevices
,我也会得到其他情况
我错过了什么?
selectedDevices
是一个数组。我检查了它:console.log(selectedDevices [1]);它给了我一个设备。
答案 0 :(得分:2)
对元素使用MMM-yyyy
方法,然后使用each()
标识当前元素:
$(this)
答案 1 :(得分:1)
使用:
thisDevice = $(this).text();
而不是:
thisDevice = $('.enhet').text();
答案 2 :(得分:0)
您正在迭代但不选择迭代器。将您的行更改为: ...
$.each( $('td.enhet'), function(i) {
thisDevice = $('td.enhet').eq(i).text();
...
答案 3 :(得分:0)
如果SubP<SubF>
提供console.log(selectedDevices)
,而["GulAvformning", "RosaAvformning"]
提供console.log(thisDevice)
,那么""
将返回$.inArray(thisDevice, selectedDevices)
,因为没有-1
""
中的["GulAvformning", "RosaAvformning"]
。有关如何正确获取thisDevice
的正确值的详细信息,请参阅Marcos Pérez Gude's solution。