getElementsByTagName where property == value?

时间:2015-01-26 16:26:42

标签: javascript

我正在尝试为第三方工具构建自定义,但其API上的JS文档有点稀缺。我正在尝试做的高级溢出是找到目标属性等于“fManager”的所有锚标记。

一旦我拥有了所有这些锚标签,我想获得onclick属性,并将值设置为ontouchend属性。

这是我到目前为止构建的javascript:

var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; ++i) {
    if(links[i].getAttribute('target') == 'fManager')
        links[i].setAttribute('ontouchend', links[i].getAttribute('onclick'));
}

我在这段代码中看到的问题是,我觉得它效率不高。首先,它获取页面上的每个锚标记,然后它才会缩减到符合额外条件的链接。

有没有办法可以改进这个,比如getElementsByTagName('a'),其中getAttribute('target')=='fManager'?沿着这些方向会有更快/更有效的方式吗?

注意:我不能使用第三方库,例如JQuery。

1 个答案:

答案 0 :(得分:6)

querySelectorAll如何改为:

var results = document.querySelectorAll('a[target="fManager"]');