我想使用Jquery(1.10.2)将我网站上的某些内容替换为API请求的结果。然后我想在该内容上执行更多javascript。我知道新内容是HTML,但我对此一无所知。即使它与#id或“.class”相关联,因此我无法定位内容。
jQuery.replaceWith()将返回OLD“this”;如何获得新内容的“this”?
$('#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
答案 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>");
});