我一直认为 jQuery 只对 DOM 元素 进行操作,也就是那些具有 nodeType == 1
的节点。 .
然而,令我震惊的是,在创建 HTML 时 $("<p> </p><!-- comment -->")
结果:
[p, Comment { data=" comment ", length=21, nodeName="#comment", more...}]
( Firebug 格式化)
我通过 AJAX 接受了一些 HTML,并以这种方式创建了一个 DOM 注释,并在某处传递给了一个仅适用于元素的函数:defaultView.getComputedStyle( elem, null )
有一些干净的方法吗?
最佳答案
I always thought that jQuery operates only on DOM elements
它的选择器只选择 DOM 元素。在您的例子中,您正在根据提供的 HTML 字符串创建节点。所以 jQuery 解析字符串并返回您请求的节点。
要清理它,请执行 .filter()
。
var els = $("<p> </p><!-- comment -->").filter(function() {
return this.nodeType === 1;
});
关于jquery - jQuery 如何处理评论元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229076/