2

我的代码正在遍历一些 div,我试图找到在其 style 属性中包含某些文本的那个。这是我最好的尝试,但没有找到。

$("#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>
4

3 回答 3

3

尝试改用*=选择器:

$(this).is("[style*='bg-stripes.gif']")

选择~=器仅适用于单个单词而不是子字符串。

于 2013-03-15T15:07:21.387 回答
1

正如@FelixKling 所说,您不需要使用选择器,我认为在这种特殊情况下使用选择器会更加混乱,您可以简单地尝试:

if ($(this).attr('style').indexOf('bg-stripes.gif') > -1 )
于 2013-03-15T15:03:57.123 回答
0

运算符查找空格分隔的~=单词,这可能不适合该style属性。

尝试改用*=“包含”运算符。您也可以在原始选择器中组合它:

$("#RootDiv > div[style*='bg-stripes.gif']")...

这将为您提供所需的元素,而无需对它们进行迭代并.is()单独测试它们。

于 2013-03-15T15:03:13.737 回答