如何找到所有具有样式背景图像的 div?
How to find all div which have style background-image?
有没有jquery或者JS把所有有背景图片的div归档。我需要延迟加载这些 div.
有一个很好的 post 向您展示了如何查找所有图像(图像、背景图像、iframe 中的图像):https://blog.crimx.com/2017/03/09/get-all-images-in-dom-including-background-en/
因此,如果您试图找到所有具有来自 URL(不是渐变)图像的背景图像的 div,此代码将为您完成:
let divs = document.querySelectorAll("div");
let urlRegex = /url\(\s*?['"]?\s*?(\S+?)\s*?["']?\s*?\)/;
var divsWithBackgroundImage = Array.from(divs).filter((div) => {
let backgroundImage = getComputedStyle(div).getPropertyValue("background-image");
return (backgroundImage.match(urlRegex));
});
我有另一个解决方案
$('div').filter(function(){
if(this.style.backgroundImage){
console.log(this.style.backgroundImage);
}
});
另一个解决方案
$('div').each(function() {
if($(this).css('background-image') != 'none'){
console.log($(this).css('background-image').split(/"/)[1]);
}
});
有没有jquery或者JS把所有有背景图片的div归档。我需要延迟加载这些 div.
有一个很好的 post 向您展示了如何查找所有图像(图像、背景图像、iframe 中的图像):https://blog.crimx.com/2017/03/09/get-all-images-in-dom-including-background-en/
因此,如果您试图找到所有具有来自 URL(不是渐变)图像的背景图像的 div,此代码将为您完成:
let divs = document.querySelectorAll("div");
let urlRegex = /url\(\s*?['"]?\s*?(\S+?)\s*?["']?\s*?\)/;
var divsWithBackgroundImage = Array.from(divs).filter((div) => {
let backgroundImage = getComputedStyle(div).getPropertyValue("background-image");
return (backgroundImage.match(urlRegex));
});
我有另一个解决方案
$('div').filter(function(){
if(this.style.backgroundImage){
console.log(this.style.backgroundImage);
}
});
另一个解决方案
$('div').each(function() {
if($(this).css('background-image') != 'none'){
console.log($(this).css('background-image').split(/"/)[1]);
}
});