如何查找具有指定背景图像的所有元素

发布于 2024-12-11 20:26:40 字数 249 浏览 0 评论 0原文

我正在寻找一种方法来选择具有指定背景图像的所有对象。 我已经尝试过这样的事情:

$.each($('*'), function(){
  if ($(this).css('backgroundImage')){
    console.info("backroundimage");
  }else {
    console.info("no backgroundimage");
  }
});

一些更好的想法?

i am searching for a way to select all objects, with a specified backgroundImage.
I have already tried things like:

$.each($('*'), function(){
  if ($(this).css('backgroundImage')){
    console.info("backroundimage");
  }else {
    console.info("no backgroundimage");
  }
});

Some better ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

两个我 2024-12-18 20:26:41

过滤器?

$('*').filter(function() {
     return $(this).css('background-image') == 'image.png';
});

Filters?

$('*').filter(function() {
     return $(this).css('background-image') == 'image.png';
});
晨曦慕雪 2024-12-18 20:26:41

一种方法:

var elementsWithBG = $('.YourSelector').filter(function(){
    return this.style.backgroundImage != ''
});

当然,并非所有元素都会有背景,例如跨度、链接等。使用 * 的成本很高,您可以用逗号分隔所需的元素,而不是 '.YourSelector'< /代码> 例如:

$('div, p, etc')

One way:

var elementsWithBG = $('.YourSelector').filter(function(){
    return this.style.backgroundImage != ''
});

Of course not all elements will have a background such as span, links, etc. Using * is expensive, you can separate needed elements with a comma instead of '.YourSelector' eg:

$('div, p, etc')
久而酒知 2024-12-18 20:26:41

你几乎已经达到了它的关键。

扩展您已有的内容:

$('*').each(function(){

    var bgImgStr = $(this).css('backgroundImage'),
        regEx = /\"|\'|\)/g,
        bgImgName = bgImgStr.split('/').pop().replace(regEx,'');

    if(bgImgName === 'whatever.jpg'){

        // do something

    }

});

顺便说一句,regEx 部分会提示除文件名(如果存在)之外的所有内容。添加此内容的原因是 - 根据浏览器 - 您可能会发现自己遇到类似以下情况:

url('../images/myImg.jpg')

You pretty much achieved the crux of it there.

To expand upon what you have already:

$('*').each(function(){

    var bgImgStr = $(this).css('backgroundImage'),
        regEx = /\"|\'|\)/g,
        bgImgName = bgImgStr.split('/').pop().replace(regEx,'');

    if(bgImgName === 'whatever.jpg'){

        // do something

    }

});

Incedentally, the regEx part srtips everything but the filename (if one exists). The reason for this addition is because - depending on the browser - you may find yourself with something like:

url('../images/myImg.jpg')
中性美 2024-12-18 20:26:41

您走在正确的轨道上:

var url = $(this).css("background-image");
if (url == theExpectedImageUrl) {
  //found image
});

但正如评论中所述,对所有元素执行此操作可能不是正确的方法!

You're sort of on the right track:

var url = $(this).css("background-image");
if (url == theExpectedImageUrl) {
  //found image
});

But as noted in comments, doing this for all elements perhaps isn't the way to go!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文