从每个ul获取第一个li元素的文本

时间:2013-03-14 19:30:48

标签: javascript jquery

我有很多<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的第一个文本{1}}

那么如何在$(this).循环中正确指出呢?

3 个答案:

答案 0 :(得分:4)

.each会给你this

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

答案 1 :(得分:2)

使用:first代替:eq(0)

的替代语法
  $('ul').each(function() {
     console.log($(this).find('li:first').text());
  });

或者,放弃find()功能。

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

答案 2 :(得分:0)

你也可以使用:

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

备注:

  • :nth-child(n),所有孩子都被计算在内,无论他们是什么。

  • :nth-child(n),n是从1开始的(第一个索引是1而不是0)