2011-08-14 14 views
0

私はこれに近いですが、何かを知っています。ul内のliのインデックスを取得していますか?

私はこのコードを持っている:

var numOfLi = $('#myList li').length; 
var lastLi = numOfLi; 

$('.next').click(function() { 
    var current = $('#myList').find('li.on'); 
    current.removeClass('on'); 
    current.next().addClass('on'); 
    var grabAlt = $('.on img').attr('alt').split('|'); 
    var holdAlt = grabAlt; 
    $('#altStuff').html('<ul class="altDescription">' + 
     '<li>' + holdAlt[0] + '</li>' + '<li>' + holdAlt[1] + 
     '</li>' + '<li>' + holdAlt[2] + '</li>' + '</ul>'); 
}); 

$('.prev').click(function() { 
    var current = $('#myList').find('li.on'); 
    current.removeClass('on'); 
    current.prev().addClass('on'); 
    var grabAlt = $('.on img').attr('alt').split('|'); 
    var holdAlt = grabAlt; 
    $('#altStuff').html('<ul class="altDescription">' + 
     '<li>' + holdAlt[0] + '</li>' + '<li>' + holdAlt[1] + 
     '</li>' + '<li>' + holdAlt[2] + '</li>' + '</ul>'); 
}); 

それは、李さんのリストを前後にクリックした李に「オン」のクラスを割り当て、各リチウムにおける画像のaltテキストをつかむ、パースそれを段落に入れます。

これはすばらしく動的に機能しますが、最初/最後のボタンに到達すると次の/前のボタンを停止しようとしています。

私の考えは次のとおりです:1.クリックすると、現在のliが最初のもの(前の作業をさせない)か最後のもの(次の作業をさせないか)を確認します。

しかし、私はそれを確認する方法についてちょっと心配しています。 .lengthはカウントだけを返します....だから、現在のliが何であっても、どのように位置の値を取得できますか?

私は、このulのすべてのliを行列に入れてインデックスに照合しなければならないと思っていましたが、私はその仕事を得ていません。

ありがとうございます。

私はその親の中にあなたにそのliの位置を与える

+0

あなたはhttp://api.jquery.com/index/を見ましたか? –

+0

[jQuery:親の子としての要素のインデックスを取得する]の重複が可能です。(http://stackoverflow.com/questions/4996002/jquery-get-index-of-element-as-child-relative-to-parent) –

答えて

3
$('li.on').index() 

に全体ULリストを置く必要があるだろう考えていました。

+0

ありがとう! –

0

[ほとんど]絶対に怠惰で、必ずしも最も簡単なものではありませんが、あなたがいていることを把握しておくことです。

あなたはすでにあなたが最後linumOfLi - 1のインデックスを持っているだろうことを知っている、とあなたが最初liは0

のインデックスを持っているだろうことを知っているので、だからあなたのようなものに変更することができ、長さを取得これは:

var numOfLi = $('#myList li').length; 
var lastLi = numOfLi - 1; 
var currentLi = 0; // I think? This wasn't clear. 

$('.next').click(function() { 
    if (currentLi !== lastLi) { 
     currentLi += 1; 
     // ... 
    } 
}); 

$('.prev').click(function() { 
    if (currentLi) { 
     currentLi -= 1; 
     // ... 
    } 
}); 
+0

あなたの洞察力に感謝し、また試してみましょう。 –

関連する問題