代码之家  ›  专栏  ›  技术社区  ›  David Hellsing

比较jQuery数组和多个DOM元素

  •  0
  • David Hellsing  · 技术社区  · 14 年前

    考虑一下:

    <div class="test">one</div>
    <div class="test">two</div>
    
    <script>
    
    var i1 = $('.test');
    var i2 = $('.test');
    
    console.log( i1 == i2 );
    console.log( i1 === i2 );
    console.log( i1.is(i2) );
    
    </script>
    

    .is() 会起到比较的作用,但事实并非如此。如何比较两个jQuery对象?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Marimuthu Madasamy    14 年前

    我们可以用 .not()

    var i1 = $('.test'); 
    var i2 = $('.test');
    alert(i1.not(i2).get().length == 0); //alerts true
    
        2
  •  2
  •   thomasrutter    14 年前

    i1和i2不相等,因为它们是不同的对象。

    听起来您想要的是找出两个jQuery对象中的元素是否相同。

    您必须迭代这两个对象的数字内容,并对它们进行比较。

    for (var i = i1.length; i--;) {
      if (!i2[i] || i2[i] !== i1[i]) {
        // jquery objects don't contain same elements
      }
    }
    
        3
  •  1
  •   meder omuraliev    14 年前

    i1 i2 是由jQuery构造函数创建的不同对象。如果你愿意,你可以比较里面的元素。

    i1[0] == i2[0] .

    .is('.test')

        4
  •  0
  •   jAndy    14 年前

    它们不完全一样。你在比较同一个元素,但它们是不同的。

    这个 .is() 调用也必须失败,因为 i1 不匹配 i2 . 你可以用 .is() 要检查实例的类名,请执行以下操作:

    i1.is('.text') === true
    

    更新

    http://www.jsfiddle.net/htcxT/

    你甚至可能在找 .unique() .unique()