2012-04-05 2 views
0

У меня есть массив на яваскрипт и я вставить элементы на ней, как это:Jquery сравнивающие элементы

var parentRow = $(button).parent().parent(); 
list.push({ parent: parentRow, detailRow: newRow }); 

On нажатием другой кнопки я сделать следующее:

 var parentRow = $(button).parent().parent(); 
     var detailRow = null; 

     for (var i in list) { 
     if ($(list[i].parent) == $(parentRow)) { 
      detailRow = list[i].detailRow; 
     } 
     } 

Дело в том, : Если сравнение с двумя элементами должно возвращать TRUE, потому что они являются одним и тем же элементом DOM .... тот же, что я добавил ранее, но он возвращает FALSE.

Я хотел бы знать, как я сравниваю эти два элемента, чтобы получить ИСТИНУЮ там.

+1

Возможный дубликат http://stackoverflow.com/questions/2436966/how-would-you-compare-jquery-objects –

ответ

0

Вам нужно сравнить собственные элементы, а не на JQuery-обернутые элементы. Методы DOM jQuery возвращают не сами элементы, а объект jQuery.

if (list[i].parent[0] === parentRow[0]) { 
1

Это не те же объекты, поскольку они не относятся к одному и тому же экземпляру jQuery.

Простое решение: не используйте jQuery и делайте это с обычными методами DOM.

JQuery Решение: Используйте .is()

Смежные вопросы