为JQuery创建条件语句

时间:2010-02-26 19:58:44

标签: javascript jquery toggle

我有一个非常新手的问题,如果答案显而易见,请道歉。

我正在使用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>

5 个答案:

答案 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();