我有一个非常新手的问题,如果答案显而易见,请道歉。
我正在使用JQuery根据项目是否被点击来切换项目的内容。我已经能够成功实现切换功能。
我现在需要加载前两个设置为show()的项目,其余设置为hide()。我为前两个项目提供了一个独特的类名。我知道我可以简单地做一个$('div.activeitem').show()
然后隐藏你的休息,但我更愿意设置一个条件。
我是一个JQuery新手,所以我不知道如何在条件语句中定位这些元素或它们的类。我搜索了谷歌,但都没有成功。我想要一个条件,询问div“newsinfo”是否还有类“jopen”然后show(),否则hide()。
感谢您的帮助。我附上了我的代码,以帮助您理解我的问题的背景:
<script type="text/javascript">
$(document).ready(function(){
// Here is where I'd like to implement a conditional
$('div.newsinfo').hide(); // this would be part of my else
$('h5.newstoggle').click(function() {
$(this).next('div').slideToggle(200);
return false;
});
});
</script>
答案 0 :(得分:4)
如何简单地
$('div.newsinfo').each(function(){
if($(this).hasClass('jopen')){
$(this).show()
}else{
$(this).hide();
}
});
答案 1 :(得分:1)
有hasClass()
个功能。更好的方法是使用toggleClass()。
例如:
$('div.blocks').click(function(){
$(this).toggleClass('class_name');
});
在第一次单击类之后,将添加第二次 - 删除...等等^^
答案 2 :(得分:1)
JQuery有一个。hasClass函数。
即
if($(".selectableItem").hasClass("selected")){
//remove selection
$(".selectableItem").removeClass("selected");
}else{
//remove the selected class from the currently selected one
$(".selectableItem .selected").removeClass("selected");
//add it to this one
$(".selectableItem").addClass("selected");
}
答案 3 :(得分:1)
为什么不将jopen类的默认css添加到display: block
,将其他css添加到display: none
?
类似
.newsinfo {display: none}
.jopen {display:block!important}
答案 4 :(得分:1)
只需使用选择器。例如,如果默认情况下显示所有具有“newsinfo”类的div:
$("div.newsinfo:not(.jopen)").hide();
如果它们默认都隐藏了:
$("div.newsinfo.jopen").show();