2

私のコードはいくつかの 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>
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属性には不適切です。

*=代わりに「contains」演算子を使用してみてください。これを元のセレクターで組み合わせることもできます。

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

これにより、必要な要素を繰り返し処理して個別にテストしなくても、必要な要素が正確に得られます.is()

于 2013-03-15T15:03:13.737 に答える