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());
    }

for但是我在循环中有一个错误,如果我不使用,$(this).我不知道如何获取ul数字 1 或 3的第一个文本$(this).

那么如何在for循环中正确地指出它呢?

4

3 回答 3

4

.each会给你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 开始的(第一个索引是 1 而不是 0)

于 2013-03-14T19:46:37.157 回答