我的代码循环遍历一些div,我正在尝试在其style属性中找到包含某些文本的div。这是我最好的尝试,但它找不到它。
$("#RootDiv > div").each(function (index)
{
if ($(this).is("[style~='bg-stripes.gif']"))
alert("found");
});
HTML
<div id="RootDiv">
<div style="background-color: White;"></div>
<div style="background-image: url(bg-stripes.gif);"></div>
<div style="background-color: White;"></div></div>
答案 0 :(得分:3)
请尝试使用*=
选择器:
$(this).is("[style*='bg-stripes.gif']")
~=
选择器仅适用于单个单词而非子字符串。
答案 1 :(得分:1)
由于@FelixKling说您不需要使用选择器,我认为在这种特殊情况下使用选择器会更加混乱,而只需尝试:
if ($(this).attr('style').indexOf('bg-stripes.gif') > -1 )
答案 2 :(得分:0)
~=
运算符会查找以空格分隔的单词,这可能不适合style
属性。
请尝试使用*=
“包含”运算符。您也可以在原始选择器中将其组合:
$("#RootDiv > div[style*='bg-stripes.gif']")...
它将为您提供所需的元素,而无需您迭代它们并单独使用.is()
进行测试。