jQuery获取新对象

时间:2011-08-10 00:23:32

标签: jquery

当使用像replaceWith这样的jQuery函数时,函数返回值是(如清楚记录的)原始 jQuery对象。但是,我通常希望与替换 jQuery对象链接。我该怎么做?

例如:

$("#original").replaceWith("<span id='replacement'></span>").someFn()
# this calls someFn() on #original, NOT as desired on #replacement.

解决这个问题最好的方法是什么?很明显我可以做$("#replacement").someFn(),但这不是重点,因为(例如)我可能事先不知道替换元素的id。

注意:我也对有关前提的反馈感兴趣。例如,我是否错过了jQuery的观点,是否有一些我不知道的成语?

3 个答案:

答案 0 :(得分:2)

你可以创建一个插件。最简单的形式可能是:

(function($) {
    $.fn.replace = function(target) {
        $(target).replaceWith(this);
        return this;
    };
}(jQuery));

用法:

$("<span id='replacement'></span>").replace("#original").someFn();

答案 1 :(得分:1)

试试这个:

$("#original").replaceWith($("<span id='replacement'></span>").someFn());

$("#original").replaceWith("<span id='replacement'></span>").filter("span").someFn()

答案 2 :(得分:0)

您可以预先在变量中创建跨度,然后替换为该变量。

var $span = $('<span id="replacement"></span>');
$('#original').replaceWith($span);
$span.someFn();