假设我有一些具有
href=/href_value/
属性的元素。如何获取所有元素,使其 href 属性具有 href_value
值?
如果您有幸忽略 IE 7 或更低版本,您可以使用:
document.querySelectorAll("[href='href_value']");
也许您需要获取所有
href
值包含您的特定 href_value
的元素?如果是这样,请尝试:
document.querySelectorAll('[href*="href_value"]');
这是一个可以在新旧浏览器中使用的版本,看看是否支持 querySelectorAll
拨打
getElementsByAttribute(attribute, value)
即可使用
这是一个小提琴:http://jsfiddle.net/ghRqV/
var getElementsByAttribute = function(attr, value) {
if ('querySelectorAll' in document) {
return document.querySelectorAll( "["+attr+"="+value+"]" )
} else {
var els = document.getElementsByTagName("*"),
result = []
for (var i=0, _len=els.length; i < _len; i++) {
var el = els[i]
if (el.hasAttribute(attr)) {
if (el.getAttribute(attr) === value) result.push(el)
}
}
return result
}
}
document.querySelectorAll
搜索与 CSS 选择器匹配的所有元素。所有现代浏览器版本都支持这一点。
在这种情况下:
var elements = document.querySelectorAll('[href="href_value"]');
使用
querySelectorAll
是普通 JavaScript 中可用的最佳方法,正如其他回复所建议的那样。如果您正在使用该库并且想要探索替代方案,jQuery 还提供全局选择。
$("[href='href_value']");