jQuery选择器background-image

时间:2012-01-12 14:35:20

标签: jquery jquery-selectors

有没有办法通过特定背景图像来识别选择器。有没有办法做到这一点?

<ul style="background-image:url(/test/test/shortcutsMenu-test.png);">

我知道这不是正确的方法,但我正在操纵一个网站到同一网站的移动版本。

3 个答案:

答案 0 :(得分:9)

您可以使用filter

$("ul").filter(function() {
    return $(this).css("background-image") === "url(/test/test/shortcutsMenu-test.png)"; 
});

这将允许您选择在其他位置定义背景图像的ul元素,而不仅仅是内联。这是一个working example

如果您不关心这一点,并且背景图片将始终在style属性中内嵌应用,则可以使用带有style属性的“attribute contains”选择器

更新(根据评论)

要只搜索部分文件名,您可以使用普通的JavaScript字符串方法,例如indexOf(因为jQuery css方法返回一个字符串):

$("ul").filter(function() {
    return $(this).css("background-image").indexOf("findThisString") > -1; 
});

答案 1 :(得分:1)

这样做的一种方法是:

$('ul[style*="/test/test/shortcutsMenu-test.png"]')

JSFiddle示例here

答案 2 :(得分:0)

你可能想要属性包含单词选择器:http://api.jquery.com/attribute-contains-word-selector/

$('[style~="/test/test/shortcutsMenu-test.png"]').get();

<击> 编辑:这是错误的。在这种情况下应使用Attribute Contains选择器,因为它将匹配子字符串而不是以空格分隔的单词:

$('[style*="/test/test/shortcutsMenu-test.png"]').get();