我正在制作一个chrome扩展程序的脚本,我必须检查某个部门中是否存在某些项目。我站在一个两难的境地面前。假设我首先要检查类名,然后检查带有data-ng属性的标签,然后直接嵌入到标签中。我可以通过使用:
来做到这一点var first = node.getElementsByClassName('classNameOfInterest');
var second = new Array();
var temp = node.getElementsByTagName('a');
for(var a = 0 ; a < temp.length ; a++){
if(temp[a].hasAttribute('data-ng')){
second.push(temp[a]);
}
}temp = false;
var third = new Array();
temp = node.getElementsByTagName('img');
for(var a = 0 ; a < temp.length ; a++){
if(temp[a].parentNode.nodeName == 'A'){
third.push(temp[a]);
}
}temp = false;
或浏览所有可能感兴趣的元素,并立即检查三个条件,如下:
var nodes = node.getElementsByTagName("*");
var first = new Array(); var second = first; var third = first;
for(var a = 0 ; a < nodes.length ; a++){
if(nodes[a].className.match(\b(classNameOfInterest)\b))
{first.push(nodes[a]);}
else if(nodes[a].nodeName == 'A' && nodes[a].hasAttribute('data-ng'))
{second.push(nodes[a]);}
else if(nodes[a].nodeName == 'IMG' && nodes[a].parentNode.nodeName == 'A');
{third.push(nodes[a]);}
}
哪种方法更快/更好,为什么?我想制作合理的代码;)。请帮忙!?