我构建了一个FAQ页面,可以隐藏和显示每个问题下的内容。 我有一个“全部展开”功能,可以让用户显示所有问题。 当一个问题被展开时,它会得到一个“被选中”的类。检查所有项目是否具有相同的类别
我试图在所有问题(LIs)都展开时更改“展开全部”状态。
我该如何检查所有LI在同一时间都有CLASS“selected”?
我使用EACH方法来获取LI和它们的CLASS。
在此先感谢
我构建了一个FAQ页面,可以隐藏和显示每个问题下的内容。 我有一个“全部展开”功能,可以让用户显示所有问题。 当一个问题被展开时,它会得到一个“被选中”的类。检查所有项目是否具有相同的类别
我试图在所有问题(LIs)都展开时更改“展开全部”状态。
我该如何检查所有LI在同一时间都有CLASS“selected”?
我使用EACH方法来获取LI和它们的CLASS。
在此先感谢
选择所有列表项,筛选出属于某一类的项目,然后确定是否有任何遗留下来的:
if($("li").not(".className").length > 0) {
//code
}
我不知道理解的问题,但检查如果jQuery对象有一个类,你使用.hasClass()。
您可以将li
元素的数量与li
元素的数量与类别“selected”进行比较。如果这些数字是相同的,那么所有的li
元素具有类:
if($("li").length == $("li.selected").length) {
//All li elements have class selected
}
您可以在任何时候做到这一点,它没有去的each
循环中。
按照Xion - 谢谢你的提示! – John
当我正确地把握你的想法时,你想在你点击一个ShowAll按钮时将你的类的所有元素设置为selected
?
您不需要遍历所有li
元素。
只需选择它们并呼吁他们addClass
:
$('li').addClass('selected');
$("li:not(.selected)").length
会给你的不具有“选定”类<li>
S上的号码。如果这个数字为零,你可以运行你的逻辑。
或者你可以用size()
if($("li.success").size() == $("li").size()){
//return true
}
试试这个我不知道我明白你问什么;难道你不能只选择有“选择”类的列表项?虽然我不确定你会这样做 - 似乎最好只处理已扩展的单个列表元素。 –