1

JavaScript に配列があり、次のように要素を挿入します。

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

別のボタンをクリックすると、次のようになります。

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

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

ポイントは次のとおりです。2つの要素を比較すると、それらは同じDOM要素であるため、TRUEを返す必要があります....前に追加したものと同じですが、FALSEを返します。

この2つの要素を比較してTRUEを取得する方法を知りたいです。

4

3 に答える 3

1

試す:

if (parentRow.has(list[i])) {
于 2012-04-05T12:02:03.787 に答える
1

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

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

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

于 2012-04-05T12:04:25.177 に答える
0

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

if (list[i].parent[0] === parentRow[0]) {
于 2012-04-05T12:03:36.500 に答える