来自JavaScript新手的提问。 我有一个这样的清单:
<ul>
<li class="class1 class2"> </li>
<li class="class3 class4"> </li>
<li class="class1 class3"> </li>
</ul>
所有列表项最初都是隐藏的,我需要检查项目是否有某个类来显示它。如果有几个项目包含一个类,我需要全部显示它们。问题是,我不知道如何正确地定位元素:
if ($('li').hasClass('class3')) {
/* show this li */
}
我应该在这里写什么?
答案 0 :(得分:8)
这不起作用,因为hasClass
只检查第一个li 返回li
中是否有任何类。就这样做:
$('li.class3').show()
如果你的条件变得更复杂,另一种写作方式是:
$('li').filter(function() {
return $(this).hasClass('class3');
}).show()
答案 1 :(得分:1)
$("ul li").each(function() {
if ($(this).hasClass('class3')) {
//do what you need, 'this' is your li
}
});
答案 2 :(得分:1)
$('li').each(function() {
if ($(this).hasClass('class3')){
//Do stuff
}
}).show()
答案 3 :(得分:0)
试试这个
$('li.class3').css('display','block');
if($('li.class3').size()>3)
{
$('li').css('display','block');
}
答案 4 :(得分:0)
我认为你可以添加它,并从兄弟姐妹中删除它: 这是最好的方式。
$("li").on("click", function(){
$(this)
.addClass("className")
.siblings()
.removeClass("className");
});