我需要一些javascript / jquery。我有两个数组,一个是硬编码的静态数组,另一个是用户驱动的动态数组。例如,每个数组中的值表示一个div。每个div都在静态数组中表示。我希望能够只显示动态数组中存在的div。因此,如果动态数组发生更改,它会显示动态数组中存在的div并隐藏不存在的div。我还希望能够运行连接到每个div的函数,即box1有一个需要调用的函数。
var static_list = new Array("box1","box2","box3");
var dynamic_list = new Array("box1","box3");
答案 0 :(得分:1)
我假设dynamic_list
是static_list
的一个子集。
$.each(static_list, function(index, value) {
$('#' + value).hide();
});
$.each(dynamic_list, function(index, value) {
$('#' + value).show();
});
$.each()
遍历一个集合,为每个元素调用回调函数。第一个$.each()
会隐藏static_list
中包含ID的所有元素。第二个$.each()
显示dynamic_list
中包含ID的所有元素。按顺序运行两者都会隐藏static_list
中的所有div元素,但dynamic_list
中的除外。{/ p>
答案 1 :(得分:0)
您可以使用简单的比较器功能:
// Return true if value is in array
function isIn(value, array) {
var i = array.length;
while (i--) {
if (array[i] == value {
return true;
}
}
return false;
}
然后你可以看到一个值是否在数组中使用:
if (isIn(value, array)) {
// do something with/to value
}
答案 2 :(得分:0)
您可以使用$.each()
,$.inArray()
和.toggle()
$.each(static_list, function(index, value){
var showHide = $.inArray(value, dynamic_list) >= 0;
$("#" + this).toggle(showHide);
});
jsfiddle上的代码示例。