2013-01-16 30 views
-1

这个每个语句都是一个较大的函数的一部分,它获取一个子对象传入的对象(数组)。比较来自传递给页面上的DOM元素的子对象的值的数组。 总之,我如何比较2个数组?如果传递数组(Children)中的值不在页面中或在DOM中找到,则将这些值添加到DOM。如果这些值已经在DOM中,则什么也不做。我如何比较2个数组和它们的值,并根据比较产生一个动作

$.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

请问你的HTML是什么样子? – ShaggyInjun

+0

我不认为我们需要html。我只是想弄清楚你的这两个阵列是什么。你似乎只是根据你想要完成的事情来描述孩子。 – Sanchit

+0

你的'else'右括号在哪里?它在原始代码中是否丢失? – kidwon

回答

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 
    } 
}); 
+0

谢谢Nuc!这真的给我提升了我需要的地方。关于传递变量i和val的想法已经达到了目标!不知道这些变量是通过每个暴露..谢谢你的朋友! – codename32

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)); 

    }); 
+0

谢谢你的努力。我真的不知道jQuery inArray函数。查看文档..看起来像我必须添加到我的工具包。 – codename32