2011-12-27 53 views

回答

10

你可以遍历页面上的所有元素,并检查它是一个图像还是有一些图像背景。这个解决方案的最大问题是速度很慢(但是它的性能可以通过几种方式得到改善)。下面是代码:

$('*').each(function(){ 
    var backImg; 

    if ($(this).is('img')) { 
     console.log($(this).attr('src')); 
    } else { 
     backImg = $(this).css('background-image'); 
     if (backImg != 'none') console.log(backImg.substring(4, backImg.length-1)); 
    } 
}); 
+1

该解决方案是正确的,但它不处理谁可能已经设置了背景的开发属性到一个url,而不是背景图像。虽然这种情况对原始海报可能是重要的,也可能不重要,但可能需要考虑。此外,除非绝对必要,否则执行此操作的性能是该解决方案的一个问题,操作系统应考虑采用不同的方法。 – 2011-12-27 06:14:47

+0

没有什么“设置背景属性到一个url”的意思。 – bjornd 2011-12-27 06:20:39

+0

@bjornd非常感谢:) – 2011-12-27 09:03:58

4

从所有的图像标签,我认为你可以简单地遍历一个图像标签


$('img').each(function(){ 
alert($(this).attr('src')); 
}); 
 

为让所有的背景图像的获取图像,你将不得不寻找所有元素的背景属性。


$('*').each(function(){ 
alert($(this).css('background-image')); 
}); 
+0

感谢@sushil的帮助。 – 2011-12-27 13:22:44

0

选择页面上的所有标记与$('img') 要找到HTML内容的所有背景图片,你会想通过每一个元素,检查它是否具有背景图像的CSS属性,如果是这样,记录该财产的价值。 我认为这将是这个样子:

$('*').each(function() { 
    if ($(this).css('background-image') != '') 
    //record however you're recording it 
}); 
+0

感谢您的帮助 – 2011-12-27 13:22:21

2

对于gettings图片来自IMG标记,使用此

var images = []; 
$("img").each(function(){ 
    if(this.src){images.push(this.src);} 
}); 
$('*').each(function(){ 
    var bg = $(this).css('background-image'); 
    if(bg && bg != 'none'){images.push(bg);} 
}); 
相关问题