是否可以在HTML文档中找到所有注释并将它们包装在div中?

spi*_*ers 4 html javascript jquery dom

我正在使用第三方系统将内容呈现为这样的html文档:

<!-- componentID: 1234 -->
<div class="some-class"> .... </div>

<!-- componentID: 1235 -->
<div class="another-class"> .... </div>
Run Code Online (Sandbox Code Playgroud)

因此系统将componentId呈现为注释.遗憾的是,系统无法将该id作为数据属性传递.我目前仍然坚持这一点.

是否有可能找到所有这些注释并将它们包含在文档中的div/span中?然后我可以访问该字符串并使用正则表达式获取id.

谢谢

don*_*yor 7

试试这个,它抓取html文件中的所有注释.如果您的计划没有其他无关的评论,这可以完成这项工作.

$(function() {
    $("*").contents().filter(function(){
        return this.nodeType == 8;
    }).each(function(i, e){
        alert(e.nodeValue);
    });
});
Run Code Online (Sandbox Code Playgroud)


dfs*_*fsq 6

我将发布非jQuery解决方案,并且效率更高,然后遍历整个DOM树:

var x = document.evaluate('//comment()', document, null, XPathResult.ANY_TYPE, null),
    comment = x.iterateNext();

while (comment) {
    alert(comment.textContent);
    comment = x.iterateNext();
}
Run Code Online (Sandbox Code Playgroud)

但是,此解决方案不适用于未实现document.evaluate方法的IE,这就是为什么只有在不必支持IE时才意识到并使用它。

演示:http//jsfiddle.net/z6GU3/