jQuery:没有字符串选择器的分离

时间:2012-07-17 02:35:51

标签: javascript jquery dom appendto detach

我正在尝试分离DOM元素以将其附加到另一个DOM元素。但jQuery拒绝做任何事情,默默无闻。

事情是,我不能使用字符串选择器,因为我不知道如何选择这个元素。当我第一次将一些html代码添加到初始父代时,我将它存储在一个变量中(通过“appendTo”。

this.element = $(my_html_string).appendTo(some_dom_parent);

这很好用。未按预期工作的代码如下:

this.transferTo = function(dom_parent)
{
    $(this.element).detach()
    $(this.element).appendTo(dom_parent);
}

会发生什么:

  • 该元素不会从任何地方删除。
  • 元素IS附加到新父级。
  • 以前在两个元素上都会触发绑定点击事件。
  • 该click事件会向该元素添加一个弹出对话框。无论我点击哪一个,它都会被附加到新父元素中的元素。

我尝试了一些硬编码分离,如:

$('#very_specific_id').detach()

......它有效。但问题是,我没有放置ID,听起来这是一个非常糟糕的方法。

所以问题似乎依赖于我正在保存jQuery DOM元素并尝试使用它的.detach,而不是像其他人一样使用$(“。query”)。

想法?解决方法?谢谢!

1 个答案:

答案 0 :(得分:0)

尝试更改此内容:

this.transferTo = function(dom_parent)
{
    $(this.element).detach()
    $(this.element).appendTo(dom_parent);
}

到此:

this.transferTo = function(dom_parent)
{
    var $thisElement = $(this.element);
    $thisElement.detach()
    $thisElement.appendTo(dom_parent);
}