replaceWith 不会删除评论
replaceWith doesn't remove comments
我正在尝试用 jquery replaceWidth()
替换一块 HTML
<!-- content box -->
<div id="content-box">
yo
</div>
<!-- /content box -->
像这样:
$('#content-box').replaceWith(response.box);
但后来我得到
<!-- content box -->
<!-- content box -->
<div id="content-box">
yo
</div>
<!-- /content box -->
<!-- /content box -->
有没有办法让它也取代 HTML 评论? :P
那是因为评论在#content-box
div之外。
<!-- content box : will not be replaced -->
<div id="content-box">
<!-- This comment will be replaced -->
yo
</div>
<!-- /content box : will not be replaced -->
评论不属于 content-box。他们是完全独立的兄弟姐妹。不是 children。我想最好的方法是从 parent.
中删除评论
$('#content-box').parent().html('').append(response.box);
如果您不想清除 parent HTML,您可以使用以下代码删除 parent 中的所有评论:
$('#content-box').parent().contents().each(function() {
if(this.nodeType == 8) {
$(this).remove()
}
});
如果你想去掉评论 只在 和 response.box
中(据我所知),你可以使用这个:
$('#content-box').replaceWith(function(){
return response.box.replace(/<!--(.*?)-->/ig, '');
});
上面的函数会改变这个:
<!-- content box -->
<div id="content-box">
yo
</div>
<!-- /content box -->
进入此(单条评论):
<!-- content box -->
<div id="content-box">
text from response.box
</div>
<!-- /content box -->
我正在尝试用 jquery replaceWidth()
替换一块 HTML<!-- content box -->
<div id="content-box">
yo
</div>
<!-- /content box -->
像这样:
$('#content-box').replaceWith(response.box);
但后来我得到
<!-- content box -->
<!-- content box -->
<div id="content-box">
yo
</div>
<!-- /content box -->
<!-- /content box -->
有没有办法让它也取代 HTML 评论? :P
那是因为评论在#content-box
div之外。
<!-- content box : will not be replaced -->
<div id="content-box">
<!-- This comment will be replaced -->
yo
</div>
<!-- /content box : will not be replaced -->
评论不属于 content-box。他们是完全独立的兄弟姐妹。不是 children。我想最好的方法是从 parent.
中删除评论$('#content-box').parent().html('').append(response.box);
如果您不想清除 parent HTML,您可以使用以下代码删除 parent 中的所有评论:
$('#content-box').parent().contents().each(function() {
if(this.nodeType == 8) {
$(this).remove()
}
});
如果你想去掉评论 只在 和 response.box
中(据我所知),你可以使用这个:
$('#content-box').replaceWith(function(){
return response.box.replace(/<!--(.*?)-->/ig, '');
});
上面的函数会改变这个:
<!-- content box -->
<div id="content-box">
yo
</div>
<!-- /content box -->
进入此(单条评论):
<!-- content box -->
<div id="content-box">
text from response.box
</div>
<!-- /content box -->