查看节点是否具有特定标记的子节点的最快方法是什么?

时间:2017-09-11 04:10:14

标签: javascript html

我想检查一个节点本身是否有某个标签,或者是否有一个JavaScript的子节点。

<html>
     <body>
         <p>
             <h3><a> This link lead nowhere!</a> </h3>
         </p>
     </body>
</html>

例如,在上面的代码中,如果我被赋予了负责p标签的节点,并且想要检查它是否有链接,那么检查它的最快方法是什么(没有链接的实际节点??

如果给定节点的名称是“node”,那么执行起来会更快:

function nodeContainsTag(node) {
    return node.tagName == "A" || node.getElementsByTagName("a").length > 0 ;
}

function nodeContainsTag(node) {
    return node.outerHTML.indexOf("<a") > 0;
}

第二个功能是否可以保证正常工作(即我是否需要检查区分大小写("<A")和间距(例如:"< a")?

1 个答案:

答案 0 :(得分:0)

此功能更快

function nodeContainsTag(node) {
    return node.tagName == "A" || node.getElementsByTagName("a").length > 0 ;
}

querySelector的工作速度也比这些慢。