Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery数组与多个DOM元素进行比较_Javascript_Jquery - Fatal编程技术网

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