jquery在列表中找到一个带有类的li,然后获取该li的文本

时间:2015-01-10 00:19:36

标签: jquery list class find

我试图找到一个带有类的元素,然后获取该li中的文本以将其放在另一个列表中

 <div id="list-container">
     <ul class="list">
         <li class="selected">text1</li>
         <li>text2</li>
         <li>text3</li>
     </ul>
     <ul class="list">
         <li class="selected">text4</li>
         <li>text5</li>
         <li>text6</li>
     </ul>
     <ul class="list">
         <li class="selected">text7</li>
         <li>text8</li>
         <li>text9</li>
     </ul>
  </div>
  <div id="listOfSlected"></div>

发生在我身上的是这样的事情

    $('#list-container .selected').each(function(index) {
        var actual = $('this');
        var text = actual.html();


        $('#listOfSlected').html(function() {
            return "<li>" + text + "</li>";
        });
    });

应用此代码我得到了未定义的

1 个答案:

答案 0 :(得分:1)

变量text未定义,因为选择器$('this')正在搜索名为<this>的元素。关键字this不是字符串。

删除引号,然后更改:

var actual = $('this');

为:

var actual = $(this);

此外,您的代码的问题在于您在每次迭代时替换#listOfSlected的HTML。因此,仅显示最后一个元素的文本,在本例中为“text7”。

我认为您正在寻找.append()元素的文字:

$('#list-container .selected').each(function () {
    $('#listOfSlected').append('<li>' + $(this).text() + '</li>');
});

$('#list-container .selected').each(function () {
    $('#listOfSlected').append('<li>' + $(this).text() + '</li>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="list-container">
    <ul class="list">
        <li class="selected">text1</li>
        <li>text2</li>
        <li>text3</li>
    </ul>
    <ul class="list">
        <li class="selected">text4</li>
        <li>text5</li>
        <li>text6</li>
    </ul>
    <ul class="list">
        <li class="selected">text7</li>
        <li>text8</li>
        <li>text9</li>
    </ul>
</div>
<ul id="listOfSlected"></ul>