我是一個jQuery初學者,但我需要風格的前端CMS和改變HTML不是一個選項,所以jQuery來拯救!我將根據LI中的文本向LI添加一個類。
我可以使用jQuery的$(this)對象幫助一下。例如,下面的代碼工作:
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>
現在讓我們假設這個導航可能會在未來改變,所以我不能簡單地指定一個類/圖標,每個L1利用只不過是第n個孩子。有沒有一種方法可以循環遍歷每個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 2012-01-17 19:57:14