jQuery选择器-检查当前div属性是否包含文本?
我的代码在一些div中循环,我试图找到在其style属性中包含某些文本的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”运算符。也可以在原始选择器中组合
$("#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
条件?