使用`replaceWith`后如何定位替换内容?

时间:2013-12-04 02:01:07

标签: javascript jquery html replacewith

我想使用Jquery(1.10.2)将我网站上的某些内容替换为API请求的结果。然后我想在该内容上执行更多javascript。我知道新内容是HTML,但我对此一无所知。即使它与#id或“.class”相关联,因此我无法定位内容。

jQuery.replaceWith()将返回OLD“this”;如何获得新内容的“this”?

http://jsfiddle.net/G24X8/3/

$('#fix').on('click', function() {
    $('#myStuff').replaceWith("<p>Hello new world!</p>"); // Hello new world content actually comes from a server
    // since replaceWith returns the old content, how do I get the $(?this?) for the new content, when I don't know what is in it?
});

-daniel

3 个答案:

答案 0 :(得分:2)

你可以这样做,在将它添加到DOM之后获取newContent,如果这就是你的意思:

$('#fix').on('click', function() {
    var $newCont = $("<p>Hello new world!</p>");
    $('#myStuff').replaceWith($newCont); 
    //Do anything with $newCont
    //$newCont.css('color', 'blue');

});

答案 1 :(得分:1)

我建议使用.html()代替.replaceWith() - 这样您只会替换目标代码的内容,而不是标记本身。

$('#fix').on('click', function() {
    $('#myStuff').html("<p>Hello new world!</p>");
    //...
    $('#myStuff').doSomethingElse(); //whatever else you need to do
});

答案 2 :(得分:0)

试试这个:

$('#fix').on('click', function() {
    $('#myStuff').text('').html("<p>Hello new world!</p>");
});