如何在一组DOM元素中查找具有给定ID的元素?

时间:2014-03-14 03:03:24

标签: jquery

我在一个名为set $的jquery集合中有一些div,它们都被一起移动了,我希望现在能够取消移动。在我完成移动之前,我克隆了以下设置:

set_before_move$ = set$.clone()

移动后,set$成员全部移动,set_before_move$成员应具有原始偏移量。我想撤消此举是为了通过set$和每个成员

  1. 获取ID
  2. set_before_move$
  3. 中找到具有该ID的元素
  4. set_before_move$成员
  5. 中提取偏移量
  6. set$成员
  7. 中应用该偏移量

    我的代码如下:

    var off;
    set$.each(function () {
       moved_id = $(this).attr('id');  // get the id of this element
       unmoved_el$ = set_before_move$.([id=moved_id]); // find element in set_before_move$
       off = unmoved_el$.offset();    // get its offset
       $(this).offset(off);   // put the offset into the set$ member
    });
    

    但它不喜欢方括号。有人看到了正确的方法吗?

    由于

2 个答案:

答案 0 :(得分:1)

您可以使用filter()方法将jQuery对象set_before_move$缩减为moved_id的单个元素集。

例如:

var moved_id = 'some-id'; 
unmoved_el$  = set_before_move$.filter(function() {
    return $(this).attr('id') == moved_id;
});

答案 1 :(得分:1)

您需要设置true:

set_before_move$ = set$.clone(true)