2

タグに内部がhas()あるかどうかを確認する関数を使用しています。タグが含まれている場合は、いくつかの CSS プロパティを追加します。私のコードは、ページのレンダリング中にタグが作成されるとうまく機能しますが、Ajax を使用してこれらのアイテムを作成すると機能しません。liulullili$.each()lihas()

jquery コードは次のとおりです。

$('.innerItems li ul li').has('ul').css({'background-image':'url(images/arrow.png)',
                                         'background-position':'2px center',
                                         'background-repeat':'no-repeat'}); 
4

3 に答える 3

2

.find代わりに使用.hasしてくださいul

$('.innerItems li ul li').find('ul').css({'background-image':'url(images/arrow.png)',
                                         'background-position':'2px center',
                                         'background-repeat':'no-repeat'}); 

編集: 代わりにこれが欲しいようです:

$('.innerItems li ul li:has(ul)').css({'background-image':'url(images/arrow.png)',
                                         'background-position':'2px center',
                                         'background-repeat':'no-repeat'}); 
于 2012-06-05T08:31:44.950 に答える
0

代わりに UL を選択してから、最も近い LI に戻ってスタイルを適用することもできます。私にはより論理的に思えます:

$('.innerItems li ul li ul').closest('li').css( //...

を使用した代替ソリューション.find():

$('.innerItems li ul li').find('ul').closest('li').css( //...

しかし、それらは本質的に等しくなります。

于 2012-06-05T08:36:12.510 に答える
0

この行を書くことを忘れないでください:

$('.innerItems li ul li').has('ul').css({'background-image':'url(images/arrow.png)',
                                     'background-position':'2px center',
                                     'background-repeat':'no-repeat'}); 

アイテム$.eachを作成する前に<li>

于 2012-06-05T08:35:08.080 に答える