1

私はたくさんの<ul>リストを持っていて、このリストのすべての最初のliからテキストを取得しようとしています.

マークアップは次のように単純です。

<ul>
   <li>abc</li>
   <li>def</li>
   <li>ghi</li>
</ul> 

等々。

私のjQueryの試みは次のとおりです。

    var elems = $('ul'); // returns a nodeList
    var arr = jQuery.makeArray(elems);
    arr.reverse(); // use an Array method on list of dom elements

    for( var i=0;  i < elems.length; i++) {
        console.log($(this).find('li:lt(1)').text());
    }

しかし、私は使用しない場合、番号1または3の最初のテキストを取得する方法がわからないというforループに間違いがあります$(this).ul$(this).

forでは、どうすればループ内でそれを正しく指すことができるでしょうか?

4

3 に答える 3

4

.each will give you this.

$('ul').each(function() {
     console.log($(this).find('li').eq(0).text());
})
于 2013-03-14T19:32:50.137 に答える
2

:first代わりに使用する代替構文:eq(0)

  $('ul').each(function() {
     console.log($(this).find('li:first').text());
  });

または、find()機能を放棄します。

 $('ul').each(function() {
    console.log( $('li:first', this).text() );
 });
于 2013-03-14T19:35:01.683 に答える
0

次のものも使用できます。

$("li:nth-child(1)").each(function() 
                              {
                                console.log($(this).text());
                              });

ノート:

  • を使用すると:nth-child(n)、子が何であるかに関係なく、すべての子がカウントされます。

  • :nth-child(n)場合、n は 1 から始まります (最初のインデックスは 0 ではなく 1 です)

于 2013-03-14T19:46:37.157 に答える