0

最初に英語が下手で申し訳ありませんが、.eq()jQuety関数に小さな問題があります。私は次のHTMLを持っています:

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

.clickこれが最初のliであるか、2番目のliであるか、3番目のliであるかを確認したいと思います。それが最初または2番目の.hide場合はdivにし、3番目のliの場合はそれを行い.showます。

ところで、私は:not関数を使用できることを知っていますが、IE8をサポートしていないので、それを使用することはできません。

ありがとう、アミット

編集:ありがとう、私はこれに行くことになった:

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

5 に答える 5

1

index次の方法を使用できます。

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

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

http://jsfiddle.net/qnNeN/

于 2012-12-02T09:27:49.073 に答える
1

これを試して

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

   $(this).click(function(){

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

    });

});
于 2013-03-28T21:37:05.480 に答える
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/期待どおりに動作していません。

于 2012-12-02T09:23:08.417 に答える
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;

      }

})

jsフィドル

于 2012-12-02T09:23:34.357 に答える
0

$(this).index()ul でクリックされた li の位置 (0-indexed) を取得するために使用できます。

ライブデモ。

​$('ul > li').click(function() {
    var index = $(this).index();
    if (index >= 0 && index <= 1) {
      // do something
    } else {
      // do someting else
    }
});​
于 2012-12-02T09:25:32.183 に答える