这个每个语句都是一个较大的函数,它传递了一个 children 对象(数组)。我遇到的问题是我试图比较传递的子对象的值数组进入页面上的dom元素。 简而言之,我如何比较2个阵列?如果传递的数组(Children)中的值不在页面上或在dom中找到,则将值添加到DOM。如果值已经在DOM中,则不执行任何操作。
$.each(children,function(){
for (var i in children){
var the_child = children[i];
var the_child_check = $("#" + the_child.id, self.container);
}
if(self.container.children.length >=0){
self.container.tabs('add', '#' + the_child.id, the_child.label);
}else{
self.container.tabs('remove', '#' + the_child.id);
});
一旦我理解了如何实现这个逻辑,那么我应该能够将它合并到函数的适当位置。
<div id="tabcontainer">
<ul id="tab1">
<li>tab 1</li>
</ul>
<ul id="tab2">
<li>tab 1</li>
</ul>
</div>
这是如何构造html的基本示例。每个选项卡都是根据传入的数组对象(子项)
动态生成的答案 0 :(得分:1)
在你的例子中
这假设您之前已在某处设置了self
。
// i gets index, val receives the item of the current iteration
$.each(children, function(i, val) {
// code
if (self.container.find(val)) {
// item exists in dom
} else {
// item does not exist in dom
}
});
答案 1 :(得分:0)
http://docs.jquery.com/Utilities/jQuery.inArray
这是jquery inArray,
$(document).ready(function(){
var arr = [ 4, "Pete", 8, "John" ];
$("span:eq(0)").text(jQuery.inArray("John", arr));
$("span:eq(1)").text(jQuery.inArray(4, arr));
$("span:eq(2)").text(jQuery.inArray("David", arr));
});