2015-12-03 42 views
0

當我給你一個jQuery元素給一個變量,它不會元素在比較匹配,但如果我給你一個javascript元素,它將...與jQuery相比,jQuery如何將一個元素分配給一個變量時的行爲不同?

test1 = $(".the_div"); 
console.log(test1 == $(".the_div")); 
// logs false 


test2 = $(".the_div")[0]; 
console.log(test2 == $(".the_div")[0]); 
// logs true 

這是怎麼回事?爲什麼會發生?

+0

嘛,'TEST1 [0] == test1的[0]'將產生也是如此... – Bergi

+0

兩個集合包含完全相同的元素。儘管如此,這兩個集合是兩個獨立的對象,擁有自己的身份。 – Bergi

回答

0

test1對象,並且無法使用比較運算符比較兩個對象。爲了比較,如圖jQuery object equality

test2 2個jQuery的對象使用is()字符串。通過將[0]附加到jQuery對象將返回集合中第一個元素的outerHTML。

What does $(selector)[0] mean in jQuery?

+1

'test2'不是一個字符串。 – Bergi

+1

你能詳細說明你的第一個陳述嗎? 'test1 == test1'很容易比較(甚至可以產生'true')。 – Bergi

+0

@Bergi'test1'是jQuery對象,因此無法使用'=='進行比較。 'test2'是字符串,'[0]'將返回匹配元素的outerHTML,檢查[this](http://stackoverflow.com/questions/32783869/what-does-selector0-mean-in-jquery/32783887 #32783887) – Tushar

相關問題