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

jQuery选择器-检查当前div属性是否包含文本?,jquery,jquery-selectors,attributes,Jquery,Jquery Selectors,Attributes,我的代码在一些div中循环,我试图找到在其style属性中包含某些文本的div。这是我最好的尝试,但没有找到 $("#RootDiv > div").each(function (index) { if ($(this).is("[style~='bg-stripes.gif']")) alert("found"); }); Html 操作符~=查找空格分隔的单词,这可能不适合style属性 尝试改用*=“contains”运算符。也可以在原始选择器中组合

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

$("#RootDiv > div").each(function (index)
{
    if ($(this).is("[style~='bg-stripes.gif']"))
            alert("found");
});
Html


操作符
~=
查找空格分隔的单词,这可能不适合
style
属性


尝试改用
*=
“contains”运算符。也可以在原始选择器中组合此选项:

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

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

操作符
~=
查找空格分隔的单词,这可能不适用于
style
属性


尝试改用
*=
“contains”运算符。也可以在原始选择器中组合此选项:

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

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

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

if ($(this).attr('style').indexOf('bg-stripes.gif') > -1 )

正如@FelixKling所说,您不需要使用选择器,我认为在这种情况下使用选择器更容易混淆,相反,您可以简单地尝试:

if ($(this).attr('style').indexOf('bg-stripes.gif') > -1 )

尝试改用
*=
选择器:

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

~=
选择器只能处理单个单词而不是子字符串。

尝试使用
*=
选择器:

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

~=
选择器将只处理单个单词而不是子字符串。

HTML是什么样子的?特定的文本,还是任何文本?您是否尝试过
如果($(this).attr('style').indexOf('…')>-1)
$(this).是否([style*='bg-stripes.gif'])效果更好<代码>~=按整个单词查找,而不仅仅是子字符串。@nbrooks哇,添加了。我不擅长这样做。HTML是什么样子的?特定文本还是任何文本?您是否尝试过
if($(this).attr('style').indexOf('…')>-1)
?是否
$(this).是否(“[style*='bg-stripes.gif'])
效果更好<代码>~=按整个单词查找,而不仅仅是子字符串。@nbrooks哇,添加了。谢谢,这也行。不过,我确实需要迭代,我只是省略了一些代码来简化我的问题。@user2174420当然,所以仍然使用
。每个
,但省略
if
测试-在现代浏览器上,这应该更有效。好的,我明白你的意思,但我确实需要循环所有div,因为我在代码中也使用了它们(未显示)。谢谢您是否只使用匹配的元素,或者是否有其他与其他元素匹配的
if
条件?谢谢,这也适用。不过,我确实需要迭代,我只是省略了一些代码来简化我的问题。@user2174420当然,所以仍然使用
。每个
,但省略
if
测试-在现代浏览器上,这应该更有效。好的,我明白你的意思,但我确实需要循环所有div,因为我在代码中也使用了它们(未显示)。谢谢您是否仅使用匹配的元素,或者是否有其他与其他元素匹配的
if
条件?