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;
        }
      }

关键是:如果比较两个元素应该返回 TRUE,因为它们是相同的 DOM 元素......我之前添加的相同,但它返回 FALSE。

我想知道我如何比较这两个元素以获得 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 回答