强制 Firefox 跳过“文本节点”在 JavaScript 的 DOM 解析中
嗨
我正在编写一段 JavaScript 代码来遍历 HTML dom 并突出显示元素。
我的问题是 Firefox 返回空格作为文本节点。
有什么解决方案可以强制它只返回标签吗?例如,我需要“firstChild”始终返回第一个标签,而不是任何文本!
谢谢
Hi
I'm writing a javascript code to traverse HTML dom and highlight elements.
My problem is firefox returns whitespaces as text node.
Is there any solution to force it to just return tags? for example I need "firstChild" always return first tag and not any text!
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
element.firstElementChild
代替。不幸的是,IE8 及更低版本不支持。或者,您可能需要编写一个小函数来抓取
childNode
,直到找到下一个element
节点。You can use
element.firstElementChild
instead. Unfortunately, this isn't supported in IE8 and below.Alternatively, you might want to write a small function to crawl the
childNode
s until you find the nextelement
node.也许您可以尝试其他 DOM 遍历方法之一,例如 TreeWalker。
Maybe you could try one of the other DOM traversal methods, such as a TreeWalker.
您可以使用
node.nodeType === 1
检查节点是否为元素。您还可以将新的 DOM Travelsal API 实现为函数。
用法
You can check if a node is an element with
node.nodeType === 1
.You can also implement the new DOM Travelsal API as functions.
usage