-1

每个语句都是一个更大的函数的一部分,该函数获取传入的对象(数组)。我遇到的问题是,我试图比较传入的子对象中的值数组到页面上的 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 的基本示例。每个选项卡都是根据传入的数组对象(children)动态生成的

4

2 回答 2

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
    }
});
于 2013-01-16T15:31:14.553 回答
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));

  });
于 2013-01-16T15:33:05.920 回答