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.
谢谢
试试这个,它抓取html文件中的所有注释.如果您的计划没有其他无关的评论,这可以完成这项工作.
$(function() {
$("*").contents().filter(function(){
return this.nodeType == 8;
}).each(function(i, e){
alert(e.nodeValue);
});
});
Run Code Online (Sandbox Code Playgroud)
我将发布非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时才意识到并使用它。