我是一个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