0

これに対する解決策をかなり探しましたが、驚くべきことに何も見つかりませんでした。適切な言葉を探していないだけかもしれません。要素ごとにインデックスを取得することについて多くの質問を見つけましたが、その逆が必要です。

私はjavascriptを使用しようとしています.jqueryは、リスト内のインデックスによって順序付けられたリスト内の要素を取得します。たとえば、次のリストがあるとします。

<ol>
  <li>Zero</li>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
</ol>

Zero最初のもの ( ) をインデックス 0 で、または 2 番目のもの ( ) をインデックス1 で取得できるようにしたいと考えてOneいます。

これまでのところ、私はいくつかのことを試しました:

  1. ID を使用してリスト内のオブジェクトのインデックスを取得することに基づく単純な関数。

    elem = list.index(0); //To get the first element, but this is not a thing.
    
  2. 次のようなループ:

    //elem is the element I am currently at.
    //Starting at the last element and going to the first.
    var elem = list.getLastChild(); //But list.getLastChild() is apparently
    //not a thing although it is here ([w3c link][1]).
    
    //Start at 0 and go to the index
    //(may/may not need the = before num, but I think I do)
    for(var i=0; i<=num; i++){
        //Set elem to it's previous sibling
    elem = elem.getPreviousSibling(); //getPreviousSibling is probably not a thing as
        //well but I couldn't get that far before it broke anyway.
    }
    
    //Return the element at the index
    return elem;
    

これを行う方法はありますか?ありがとう。

4

2 に答える 2

3

これを行うには多くの方法があります。:eqセレクターを使用できます。このようなもの?

var $lis = $('ol li');

for(var i=0; i < $lis.length; i++)
{
    alert($('ol li:eq(' + i + ')').text());
}

デモ

したがって、これはインデックスがゼロであるためです。あなたができること:$('ol li:eq(0)')最初の要素を取得するため。nth-childcss 、、nth-of-typeセレクターも使用できます。

  alert($('ol li:nth-child(1)').text()); // This starts with 1 index, non-zero indexed.
于 2013-06-30T03:48:42.043 に答える
2

JQuery を使用できます。

$("ol li:nth-child(1)")
$("ol li:nth-child(n)")

http://api.jquery.com/nth-child-selector/

于 2013-06-30T03:48:48.780 に答える