【发布时间】:2012-05-21 07:29:16
【问题描述】:
我有下面的脚本
var els = document.getElementsByTagName("a");
for(var i = 0, l = els.length; i < l; i++) {
var el = els[i];
el.innerHTML = el.innerHTML.replace(/link1/gi, 'dead link');
}
但是,这会搜索整个页面,并且需要大约 20 秒才能完成,因为有很多链接。
但是我只需要定位具有特定href 的a,例如。 "http://domain.com/"
所以理想情况下,我希望能够以与 jQuery 类似的方式执行此操作,但不使用框架。所以像
var els = document.getElementsByTagName("a[href='http://domain.com']");
我该怎么做才能只搜索与href匹配的对象?
【问题讨论】:
-
您想支持哪些浏览器?您可以尝试
document.querySelectorAll看看它是否有所作为,但此方法在 IE7 及更早版本中不可用。另一种可能性是使用 CSS3 来更改外观和/或添加一些额外的文本。 -
@FelixKling querySelectorAll 能有这么大的不同吗?看来 OP 的代码已经很简单了.. 除非没有显示所有代码:)
-
我只想编写一个函数来处理所有链接的 onclick。然后,一旦有人单击该链接,您就可以根据需要进行更改。
-
@Jack:我不知道
querySelectorAll在内部是如何工作的。但这就是 OP 应该尝试测试它的原因。 -
@Jack 代码是裸露的,但它使用的属性计算成本很高。
标签: javascript href getelementsbytagname