我有一个<SELECT multiple="multiple">
选项框。
我将选定的选项存储在JS变量中 - selectedFeatures
。
我想将selectedFeatures
选项的数组变量传递给jQuery.inArray()
- 但该函数旨在仅获取和检查一个值。
如果我实际上指定了一个元素的索引,我可以在我的地图上显示/隐藏(或过滤)标记,如下所示selectedFeatures[0]
:inArray()
..但是由于我可以从选择框中选择多个选项,因此这种过滤方法不起作用。
如何使用 JS/jQuery检查是否在另一个数组中找到了一组项目?
// store selected options as an array of string elements inside the variable
var selectedFeatures = $("#features").val();
// for every element inside 'markers.houses' array...
$(markers.houses).each(function(index, elem){
// check if any of the values inside the 'selectedFeatures' array are found
// also inside a sub-array 'features' inside every element of 'markers.houses'
// array. if 'true' show that particular marker, otherwise hide the marker
if(jQuery.inArray(selectedFeatures, elem.features) !== -1 || jQuery.inArray(selectedFeatures, elem.features) > -1){
markers.houseMarkers[index].setVisible(true);
}else{
markers.houseMarkers[index].setVisible(false);
}
});
图 1.1 -将选定的选项存储在一个数组变量中并与
jQuery.inArray()