如何从dom树中取消jQuery对象的追加?

mgdq6dx1  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(111)

我显式地不是寻找remove()函数。
与DOM无关的jQuery-Object可以使用以下方法创建:

let $element = $('<div>').addClass('myInvisibleDomObject').text('Test');

这个不相关的对象在按键时被附加到我的DOM中,但是在释放按键时应该被取消附加。
我用这个静态对象来表示摄像头访问。所以我的对象是一个视频元素,包含流数据、视频源代码等。所以它比上面的代码示例要复杂一些。我不想克隆视频对象或创建一个新的流,因为这样做会很慢。
我已经试过appendTo(null)了,但是不起作用。简单的隐藏不是解决办法,因为一些html是通过xhr请求按需替换的。我想要一个干净的解决方案,不要附加到其他一些对象,比如<body>或类似的东西。
示例:

// $element is the element from above
 // .cameraPreview is some div inside my DOM

 $(document).keydown(function(event: JQuery.Event) {
     $element.appendTo('.cameraPreview');
 });

 $(document).keyup(function(event: JQuery.Event) {
     $element.unappendFrom('.cameraPreview'); // this does not exist
 });
oo7oh9g9

oo7oh9g91#

.detach()怎么样?
detach()方法与.remove()方法相同,不同之处在于.detach()将所有jQuery数据与被删除的元素相关联。当被删除的元素稍后要重新插入DOM时,该方法非常有用。
第一个

相关问题