有没有办法让DOM上的所有元素都存在某个CSS属性?假设我想要使用背景图像CSS值获取所有元素 - 我如何选择所有元素?我最好避免使用Jquery。
答案 0 :(得分: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用于其余部分。
答案 1 :(得分: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]);
}
}
答案 2 :(得分:-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!');
}
}
最好使用确切的标签名称而不是'*',如果你知道它之前会是什么