2012-04-05 14 views
0

私はjavascriptの上のアレイを持っていると私はこのようなことの要素を挿入しますjQueryの比較要素

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

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

ポイントは次のとおりです。私は次の操作を実行し、別のボタンをクリックするだけで

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

を:2つの要素を比較すると、同じDOM要素であるため、TRUEが返されます。前に追加したのと同じですが、FALSEが返されます。

私は、この2つの要素を比較してTRUEを得る方法を知りたいと思います。

+1

の可能性のある重複http://stackoverflow.com/questions/2436966/how-would-you-compare-jquery-objects –

答えて

0

あなたはネイティブの要素ではなく、jQueryの-包まれた要素を比較する必要があります。 jQueryのDOMメソッドは、要素自体ではなくjQueryオブジェクトを返します。

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

試してみてください。

if (parentRow.has(list[i])) { 
1

これらは同じjQueryインスタンスを参照していないため、同じオブジェクトではありません。

単純な解決策:jQueryを使用せず、通常のDOMメソッドで使用します。

jQueryのソリューション:使用.is()