我试图找到一个带有类的元素,然后获取该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>";
});
});
应用此代码我得到了未定义的
答案 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>