jQuery Selector - 检查当前div属性是否包含文本?

时间:2013-03-15 14:56:56

标签: jquery jquery-selectors attributes

我的代码循环遍历一些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>

3 个答案:

答案 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()进行测试。