2015-04-01 39 views
2

是否有可能我们可以使用Javascript或JQuery编辑包含在HTML注释内的文本。例如,如果我有类似的评论:使用JQuery或Javascript编辑HTML注释文本

<!-- This is a comment --> 

那么是否有可能使用JQuery或Javascript更改文本'这是一条评论'?

谢谢。

+0

当然。这是jQuery的重点,操纵DOM。看到这个https://api.jquery.com/text/ – 2015-04-01 12:07:07

+0

啊。我看到你已经编辑过你的文章(或Rory做过:)你想改变评论内的内容。这完全不同。 – 2015-04-01 12:10:50

+2

你想通过这样做来达到什么目的? – Quentin 2015-04-01 12:19:49

回答

0

可以使用replace()功能是这样的:

var x = $.trim($('#container').html()).replace('<!--','').replace('-->',''); 

还有一个plugin,你可以用它来取消注释是一个jQuery插件,可以让你“动”评论HTML代码到DOM

编辑: -

如果你想从DOM中删除它作为罗里评论说,那么你可以试试这个:

$('*').contents().each(function() 
{ 
     if(this.nodeType == Node.COMMENT_NODE) 
     { 
      $(this).remove() 
     } 
}); 
+0

请注意,这将使文本的注释在DOM中可见,它不会保留注释并更改其中的文本 - 这正是OP似乎期望做的事情。 – 2015-04-01 12:11:51

+0

@RoryMcCrossan: - 更新了我的答案,也将其从DOM中删除。 – 2015-04-01 12:18:56

1

你可以通过评论的父元素的childNodes迭代,过滤commentNode并改变它的值通过重置nodeValue属性:

$('#parent').contents().each(function() { 
    if (this.nodeType === 8) { 
     this.nodeValue = 'changed value'; 
    } 
}); 

Using vanilla JavaScript

var parentNode = document.getElementById('parent'); 

[].forEach.call(parentNode.childNodes, function(el) { 
    if (el.nodeType === 8) { 
     el.nodeValue = 'changed value'; 
    } 
});