2015-04-01 37 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'; 
    } 
});