jQuery:在没有字符串选择器的情况下分离

jQuery: Detach without string selector

本文关键字:选择器 情况下 分离 字符串 jQuery      更新时间:2023-09-26

我试图分离一个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附加到新的父元素
  • 在这两个元素上都会触发以前的绑定单击事件
  • 该单击事件会将弹出对话框附加到元素中。它总是被附加到新父对象中的元素,无论我单击哪一个

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

$('#very_specific_id').detach()

它是有效的。但问题是,我周围没有身份证,这听起来是一种非常糟糕的方式。

因此,问题似乎取决于我正在保存一个jQueryDOM元素,并尝试使用.declact,而不是像其他人一样使用$(".query")。

想法?解决方法?谢谢

尝试更改此项:

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