jquery检查它是否等于0,1或2

时间:2012-12-02 09:19:29

标签: jquery show-hide

首先抱歉我的英语不好, 我遇到.eq() jQuety函数的小问题。 我有以下HTML:

<ul>
    <li>1</li>
    <li>2</li>
    <li>2</li>
</ul>

我想查看.click这是第二个li还是第三个li的第一个li。 如果它是第一个或第二个我想要.hide一个div,如果它是第三个我想要.show它。

顺便说一句,我知道我可以使用:not功能,但它不支持IE8,所以我不能你。

谢谢,阿米特

编辑:谢谢,我结束了这个:

if($(this).is(':nth-child(3)') == true) {
     $("#redB .bundleInfo p").show();
}else {
     $("#redB .bundleInfo p").hide();
};

5 个答案:

答案 0 :(得分:1)

您可以使用index方法:

var $li = $('ul li');

$li.click(function(){
   $('div').toggle( $li.index(this) > 1 );
})

http://jsfiddle.net/qnNeN/

答案 1 :(得分:1)

试试这个

 $("ul li").each(function(){

   $(this).click(function(){

      if (index >= 0 && index <= 1) {
       // here someting
        } else {
       // here someting
       }

    });

});

答案 2 :(得分:0)

鉴于您当前的HTML,您可以执行以下操作:

$("li").bind("click", function(){
    var myLiElems= $("li");
    var curIdx = myLiElems.index($(this));

    if (2 == curIdx) {
        // show my div
    } else {
        // hide my div
    }
});

有关jQuery的index()函数的更多信息,请访问:http://api.jquery.com/index/

鉴于您当前的javascript,您需要在此处查看eq()函数的文档:http://api.jquery.com/eq/它无法正常工作。

答案 3 :(得分:0)

  $('li').click(function(){

     switch($(this).index()){
      case 0:
        alert("its 0");
        break;
      case 1:
        alert("its 1");
        break;
      case 2:
        alert("its 2");
        break;

      default:
        alert("other")
        break;

      }

})

<子> <子> <子> jsFiddle

答案 4 :(得分:0)

您可以使用$(this).index()来获取ul中点击的li的位置(0-indexed)。

The live demo.

​$('ul > li').click(function() {
    var index = $(this).index();
    if (index >= 0 && index <= 1) {
      // do something
    } else {
      // do someting else
    }
});​