Javascript 查找显式设置了CSS字段的标记

Javascript 查找显式设置了CSS字段的标记,javascript,css,dom,Javascript,Css,Dom,是否可以在HTML页面中迭代每个标记,以查找显式设置了特定CSS属性的标记 在某种程度上: for element in elements { if element has CSS.background-image { CSS.background-image = something; } } 编辑:理想情况下,我正在寻找一个纯JS解决方案(没有jQuery)。如果您可以使用jQuery,请检查 $('div').filter(function() { return $(thi

是否可以在HTML页面中迭代每个标记,以查找显式设置了特定CSS属性的标记

在某种程度上:

for element in elements {
 if element has CSS.background-image {
   CSS.background-image = something;
 }
}

编辑:理想情况下,我正在寻找一个纯JS解决方案(没有jQuery)。

如果您可以使用jQuery,请检查

$('div').filter(function() {
   return $(this).css('background-imae') == 'something';
});
它将为您提供一组具有特定背景图像的div

对于纯js解决方案检查


如果您同意使用jquery,请检查

$('div').filter(function() {
   return $(this).css('background-imae') == 'something';
});
它将为您提供一组具有特定背景图像的div

对于纯js解决方案检查


完整的迭代参考。
完整的迭代参考。

这里有一种替代的原生方法

var elems=Array.prototype.slice.call(document.querySelectorAll('[style]');
styledElems=elems.filter(函数(elem)){
返回elem.style.background;
})
//你不需要其他的。只是需要证明它是有效的
.map(功能(elem){
返回elem.className | | elem.tagName;
});
stackLog(styledElems);
函数堆栈日志(val){
document.querySelector(“#console”).innerHTML+=JSON.stringify(val,0,2);
}

标题

Lorem ipsum dolor sit amet,Concertetur adipising elit。自由和必要的劳动

白斑病是一种慢性病

一种是腐乳酸,一种是柠檬酸


这里是另一种本机方法

var elems=Array.prototype.slice.call(document.querySelectorAll('[style]');
styledElems=elems.filter(函数(elem)){
返回elem.style.background;
})
//你不需要其他的。只是需要证明它是有效的
.map(功能(elem){
返回elem.className | | elem.tagName;
});
stackLog(styledElems);
函数堆栈日志(val){
document.querySelector(“#console”).innerHTML+=JSON.stringify(val,0,2);
}

标题

Lorem ipsum dolor sit amet,Concertetur adipising elit。自由和必要的劳动

白斑病是一种慢性病

一种是腐乳酸,一种是柠檬酸


注意:

如果您需要检查所有页面,节点列表将非常大。尝试搜索特定的类,例如
.myElement
,而不是
div
。您也可以使用
*
获取所有页面,但如果可以,请避免使用它。

注意颜色,颜色将返回为rgb而不是十六进制

var elementNodeList=document.queryselectoral('*');//获取所选元素的节点列表。
var filteredElements=Array.prototype.filter.call(elementNodeList,函数(节点)){
var getCompoundStyle=window.getComputedStyle(节点);
返回getCompoundStyle.getPropertyValue('property-name')=='specifiedProperty';
});

您的filteredItems将位于filteredElements变量内。

注意:

如果您需要检查所有页面,节点列表将非常大。尝试搜索特定的类,例如
.myElement
,而不是
div
。您也可以使用
*
获取所有页面,但如果可以,请避免使用它。

注意颜色,颜色将返回为rgb而不是十六进制

var elementNodeList=document.queryselectoral('*');//获取所选元素的节点列表。
var filteredElements=Array.prototype.filter.call(elementNodeList,函数(节点)){
var getCompoundStyle=window.getComputedStyle(节点);
返回getCompoundStyle.getPropertyValue('property-name')=='specifiedProperty';
});

您的filteredItems将位于filteredElements变量中。

谢谢您的回答!我应该说明我在寻找一个纯JS解决方案。此外,我正在寻找一个解决方案,发现任何背景图像CSS。我想如果……=“”尽管如此。JS解决方案实际上是有效的,但它只在元素内嵌CSS背景图像时才有效。它在google搜索页面上工作,但在背景图像来自类属性的图标上不起作用。@在这种情况下,您还需要检查为元素提供背景图像的类,例如
document.querySelectorAll(“div.class1,div.class2”)除了上述给定的代码之外,我了解这是否可行,但是否有一种方法可以搜索所有元素?我正在写一个greasemonkey脚本,我想应用到我访问的所有页面,所以我无法预测类名…谢谢你的回答!我应该说明我在寻找一个纯JS解决方案。此外,我正在寻找一个解决方案,发现任何背景图像CSS。我想如果……=“”
尽管如此。JS解决方案实际上是有效的,但它只在元素内嵌CSS背景图像时才有效。它在google搜索页面上工作,但在背景图像来自类属性的图标上不起作用。@在这种情况下,您还需要检查为元素提供背景图像的类,例如
document.querySelectorAll(“div.class1,div.class2”)除了上述给定的代码之外,我了解这是否可行,但是否有一种方法可以搜索所有元素?我正在写一个greasemonkey脚本,我想应用到我访问的所有页面,所以我无法预测类名。。。
function getStyle(el,styleProp)
{
    var x = document.getElementById(el);
    if (x.currentStyle)
        var y = x.currentStyle[styleProp];
    else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
    return y;
}