getElementsByTagName where property == value?

Tia*_*ago 0 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'));
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dal*_*rzo 6

querySelectorAll相反如何:

var results = document.querySelectorAll('a[target="fManager"]');
Run Code Online (Sandbox Code Playgroud)