のトラブル私はjQueryの初心者だけど、私はCMSのフロントエンドのスタイルを必要とHTMLを変更することはオプションではありません、jQueryの救助に! LI内のテキストに応じて、LIにクラスを追加します。
私はjQueryのの$(この)オブジェクトを使用してヘルプのビットを使用することができます。
if ($('div.nav ul li:nth-child(2):contains("About")').length > 0) {
$('div.nav ul li:nth-child(2)').addClass("about");
}
しかし、指数関数的に私のコードを繰り返さないために、私はむしろこのような何かを記述します:たとえば、次のコードは動作します
if ($('div.nav ul li:nth-child(2):contains("About")').length > 0) {
$(this).addClass("about");
}
しかしこれは動作しません。私は何かひどく明白なものを屠っていると確信していますが、私は$(this)オブジェクトについていくつかのチュートリアルを読んできました。
また、おそらく私はずっと簡単な解決法がありません。私は次のマークアップを持っているとしましょう。
<ul id="nav">
<li>About</li>
<li>Contact</li>
<li>News</li>
</ul>
今度は、私は単にn番目の子だけを使用していない各LIにクラス/アイコンを割り当てることはできませんので、このナビゲーションは、将来的に変更される可能性がありますと仮定してみましょう。各LIをループして各条件をループする方法はありますか?私はjQueryを使って十分に慣れていないんだけど、英語とjQueryの私のミックスの中でそれは次のようになります。
loop through #nav:each li {
if (child:contains("About")').length > 0) {
$(this).addClass("about");
}
if (child:contains("Contact")').length > 0) {
$(this).addClass("contact");
}
if (child:contains("News")').length > 0) {
$(this).addClass("news");
}
}
残念ながらそれはちょうど作っ構文れます!本当に誰かがREAL jQueryでそれを書くのを手助けすることができます:)もしそうなら、おそらくあなたが持つかもしれないCSSの問題を手伝ってくれるでしょう。
ありがとうございます!
ああ、それは素晴らしいです!そのようなコンパクトなコードとそれは仕事をまったく同じように、感謝を得る!メタアプローチの場合は – LearnWebCode