jQuery ReplaceWith 查找新元素

发布于 2024-11-09 06:01:29 字数 391 浏览 0 评论 0原文

我正在编写一个脚本来用 jQuery 中的 div 替换一些图像。我目前正在使用 replaceWith() 方法,效果很好,但返回原始(已删除)元素而不是新元素。

.replaceWith() 方法,就像大多数方法一样 jQuery 方法,返回 jQuery 对象,以便其他方法可以 拴在它上面。然而,它必须是 注意到原始 jQuery 对象 被返回。该对象指的是 已从 中删除的元素 DOM,而不是具有的新元素 替换它。

如何获取对刚刚创建的新 DOM 元素的引用?

I'm writing a script to replace some images with divs in jQuery. I'm currently using the replaceWith() method, which works fine, but returns the original (removed) element instead of the new element.

The .replaceWith() method, like most
jQuery methods, returns the jQuery
object so that other methods can be
chained onto it. However, it must be
noted that the original jQuery object
is returned. This object refers to the
element that has been removed from the
DOM, not the new element that has
replaced it.

How can I get a reference to the new DOM element I just created?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

祁梦 2024-11-16 06:01:29
$.fn.replaceWithPush = function(a) {
    var $a = $(a);

    this.replaceWith($a);
    return $a;
};

查看工作演示

$.fn.replaceWithPush = function(a) {
    var $a = $(a);

    this.replaceWith($a);
    return $a;
};

See a working demo

雨落星ぅ辰 2024-11-16 06:01:29

我相信replaceAll()返回新内容。它的目标和源与replaceWith()相反。

var newobj = $( "<p>New paragraph" ).replaceAll( "#replaceme" );

I believe replaceAll() returns the new content. It has the target and source reversed from replaceWith().

var newobj = $( "<p>New paragraph" ).replaceAll( "#replaceme" );
漫雪独思 2024-11-16 06:01:29

在调用 ReplaceWith() 之前,先进行 jQuery 调用以查找父节点,然后使用父节点查找通过 ReplaceWith() 函数插入的新节点。

下面是 $.ajax() 函数的成功处理程序中替换表单的示例:

success: function(data,textStatus,jqXHR){
    var $li=$form.parents('li');        
    $form.replaceWith(data);
    var $form=$li.find('form');
    //...
},

在此示例中,每个 li 有一个唯一的表单。您可能需要根据构建 DOM 的方式来定制方法。

Precede your call to replaceWith() with a jQuery call to find the parent node and then use the parent to find the new node that was inserted with the replaceWith() function.

Here's an example inside the success handler of a $.ajax() function that replaces a form:

success: function(data,textStatus,jqXHR){
    var $li=$form.parents('li');        
    $form.replaceWith(data);
    var $form=$li.find('form');
    //...
},

In this example, there was a unique form for each li. You may need to tailor your approach depending on how you construct your DOM.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文