我如何比较2个数组及其值,并根据比较产生一个动作

时间:2013-01-16 15:22:39

标签: javascript jquery arrays jquery-ui

这个每个语句都是一个较大的函数,它传递了一个 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的基本示例。每个选项卡都是根据传入的数组对象(子项

动态生成的

2 个答案:

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

  });