0

我想为此编写一个调用 replaceWith 的插件,如何选择该新内容,以便我可以链接我的插件以获取新内容。

$.fn.spam = function() {
    this.replaceWith('<span>spam</span>');
};

我想做类似的事情

$('div').span().css('background-color', 'red');

replaceWith返回旧内容,如何获取新内容?

4

3 回答 3

2
$.fn.spam = function() {
    var elems = $();
    this.each(function() {
        var span = $('<span />', {text: 'spam'});
        $(this).replaceWith(span);
        elems.push(span.get(0));
    });
    return $(elems);
};

$('div').spam().css('background-color', 'red');

小提琴

于 2013-06-14T11:42:16.103 回答
1

也许像这样:

$.fn.span = function() {
var theNewElt = $('<span>spam</span>');
this.replaceWith(theNewElt);
return theNewElt;
};


$('div').span().css('background-color', 'red');

jsfiddle上进行测试

于 2013-06-14T11:44:47.877 回答
0

replaceAll我找到了一种使用jquery 方法在一行中执行此操作的方法

$.fn.spam = function() {
    return $('<span>spam</span>').replaceAll(this);
};
于 2013-06-14T11:45:59.803 回答