Javascript 将jQuery数组与多个DOM元素进行比较
考虑这一点:Javascript 将jQuery数组与多个DOM元素进行比较,javascript,jquery,Javascript,Jquery,考虑这一点: <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> 1 二 变量i1
<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>
1
二
变量i1=$('.test');
变量i2=$('.test');
console.log(i1==i2);
console.log(i1==i2);
console.log(i1.is(i2));
尽管它们包含相同的元素,但它们都打印false。有人会认为,
.is()
可以用于比较,但事实并非如此。如何比较两个jQuery对象?i1
和i2
是jQuery构造函数创建的不同对象。如果你愿意,你可以比较里面的元素
i1[0]==i2[0]
您可以创建一个函数来迭代整个元素以进行比较,并确保元素匹配
您也可以执行
.is('.test')
,但必须始终指定选择器 i1
和i2
是jQuery构造函数创建的不同对象。如果你愿意,你可以比较里面的元素
i1[0]==i2[0]
您可以创建一个函数来迭代整个元素以进行比较,并确保元素匹配
您也可以执行
.is('.test')
,但必须始终指定选择器 它们并不完全相同。您正在比较相同的元素,但它们却不同
调用.is()
也必须失败,因为元素i1
与i2
不匹配。您可以使用.is()
检查类名,例如:
i1.is('.text') === true
更新
因为你的评论,
您甚至可能正在寻找
.unique()
jQuery方法,该方法可以从数组中删除重复的DOM元素:它们并不完全相同。您正在比较相同的元素,但它们却不同
调用.is()
也必须失败,因为元素i1
与i2
不匹配。您可以使用.is()
检查类名,例如:
i1.is('.text') === true
更新
因为你的评论,
您甚至可能正在寻找
.unique()
jQuery方法,该方法可以从数组中删除重复的DOM元素:i1和i2不相等,因为它们是不同的对象
听起来您想要的是找出两个jQuery对象中的元素是否是相同的元素
您必须迭代这两个对象的数字内容,并对它们进行比较
例如,类似于:
for (var i = i1.length; i--;) {
if (!i2[i] || i2[i] !== i1[i]) {
// jquery objects don't contain same elements
}
}
i1和i2不相等,因为它们是不同的对象 听起来您想要的是找出两个jQuery对象中的元素是否是相同的元素 您必须迭代这两个对象的数字内容,并对它们进行比较 例如,类似于:
for (var i = i1.length; i--;) {
if (!i2[i] || i2[i] !== i1[i]) {
// jquery objects don't contain same elements
}
}
我们可以使用
我们可以使用
怎么不一样?我不想比较类名,我想检查对象是否包含相同的DOM元素。@大卫:这是另一回事,只是为了比较
DOM元素
,你必须将它们与if(i1[0]==i2[0])
或if(i1.get(0)==i2.get(0))
进行比较。这两种模式都从jQuery对象
@Reigel返回参考底图DOM节点
:那么你做错了什么<如果应用了类text
,则code>.is('.text')返回true。啊,我的错,我使用了操作的.test
。。。你的是.text
…)怎么不一样?我不想比较类名,我想检查对象是否包含相同的DOM元素。@大卫:这是另一回事,只是为了比较DOM元素
,你必须将它们与if(i1[0]==i2[0])
或if(i1.get(0)==i2.get(0))
进行比较。这两种模式都从jQuery对象
@Reigel返回参考底图DOM节点
:那么你做错了什么<如果应用了类text
,则code>.is('.text')返回true。啊,我的错,我使用了操作的.test
。。。你的是.text
…)有没有一种巧妙的循环和比较方法?有没有一种巧妙的循环和比较方法?就是这样。我用了!i1.not(i2).length(长度)
,它似乎工作得很好。我认为如果i2有比i1更多的元素,这将失败,在预期的地方给出一个TRUE是的。。如果i1.length==i2.length
就应该首先检查它。我用了!i1.not(i2).length(长度)
,它似乎工作得很好。我认为如果i2有比i1更多的元素,这将失败,在预期的地方给出一个TRUE是的。。如果i1.length==i2.length