我有一个无序列表的元素,想要过滤掉(切换)所有具有“alt”类的元素,但不是那些具有第二类“链接”的元素。
HTML:
Toggle:
<a href="#" id="linkToggle">Links</a>
<a href="#" id="altToggle">ALT</a>
<ul id="errorList" class="nav nav-list" style="height: 190px; overflow: auto;">
<li class="alt">Alt 1</li>
<li class="alt">Alt 2</li>
<li class="alt links">Alt / Links 1</li>
<li class="alt links">Alt / Links 2</li>
<li class="links">Links 1</li>
<li class="links">Links 2</li>
</ul>
jQuery:
function toggleClass(cssClass) {
$("."+cssClass).toggle();
$("#"+cssClass+'Count').parent().toggleClass("muted");
}
$("#linkToggle").click(function() {
$(".links").toggle();
$(this).toggleClass("muted");
})
$("#altToggle").click(function() {
$(".alt").toggle();
$(this).toggleClass("muted");
})
我为你做了一个JSFiddle :http: //jsfiddle.net/7MnXd/
你有6个元素:
- 2 有一个名为“链接”的类
- 另外2个有一个名为“alt”的类
- 并且有两个类的元素
我要归档的内容:
当点击“Link”时,只有“Link 1”和“Link 2”应该被过滤掉,因为“Alt / Links n”有两个类。仅当两个切换都被激活时,才应过滤掉这两个元素。我还尝试了 jQuery 提供的 [filter() function][2],但无法解决问题。我想我必须检查它是否是唯一的类,如果不是,它不会被过滤掉,但是如何检查另一个类是否已经切换?
有人可以指出我正确的方向吗?谢谢!