有没有办法通过某个 CSS 属性来获取 DOM 上的所有元素?假设我想获取所有具有 background-image CSS 值的元素——我如何选择所有这些元素?我最好避免使用 Jquery。
问问题
166 次
3 回答
3
可以肯定的是,你得到了这样的风格:
var elms = document.all ? document.all : document.body.getElementsByTagName("*");
for (i = 0; i < elms.length; i++) {
if ((elms[i].currentStyle && elms[i].currentStyle.backgroundImage.length > 0) ||
(window.getComputedStyle &&
window.getComputedStyle(elms[i]).getPropertyValue("background-image"))) {
alert('found one!');
}
}
CurrentStyle 适用于 IE,getComputedStyle 适用于其余部分。
于 2012-08-31T21:54:51.283 回答
2
在现代浏览器上,您可以使用getComputedStyles
var elements = document.getElementsByTagName("*");
var haveBg = new Array();
for (i = 0; i < elements.length; i++) {
var style = window.getComputedStyle(elements[i], null);
if (style.getPropertyValue("background-image") != 'none') {
haveBg.push(elements[i]);
}
}
于 2012-08-31T21:57:07.763 回答
-1
var elms = document.all ? document.all : document.getElementsByTagName("*");
for (i = 0; i < elms.length; i++) {
if (elms[i].style.backgroundImage.length > 0) {
alert('found one!');
}
}
如果您事先知道它会是什么,最好使用确切的标签名称而不是“*”
于 2012-08-31T21:44:33.560 回答