我试图用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
答案 0 :(得分:1)
那是因为评论在#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').parent().html('').append(response.box);
如果您不想清除父HTML,可以使用以下代码从父级删除所有注释:
$('#content-box').parent().contents().each(function() {
if(this.nodeType == 8) {
$(this).remove()
}
});
答案 1 :(得分:0)
如果你想在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 -->