4

我正在尝试将属性传递给 jquery append 函数。它附加 html 但不附加属性。控制台中也没有显示错误。html代码:

    <li>First Item</li>
    <li>Second Item</li>

Javascript代码:

    $('li').each(function(){
        $(this).append('<span></span>', {
            text: 'some text',
            class: 'someClass'
        })
    });

我希望 HTML 看起来像

 <li>First Item <span class="someClass">some text</span></li>
 <li>Second Item Item <span class="someClass">some text</span></li>
4

4 回答 4

13

.append()是一个方法,而不是一个element object

$('li').each(function(){

  $('<span />', {
    'class' : 'someClass', 
    text : 'some text',
    appendTo : this
  });
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li>First Item</li>
    <li>Second Item</li>
</ul>

于 2013-03-31T10:46:13.467 回答
1

试试这个:

$('li').each(function(){
        $('<span/>',{
            text: 'some text',
            class: 'someClass'
        }).appendTo(this);
});
于 2013-03-31T11:00:33.040 回答
0

你可以做

$(this).append('<span class="someClass">some text</span>');
于 2013-03-31T10:44:04.510 回答
0

append 的第二个参数是(我引用 jQuery 文档):

一个或多个附加 DOM 元素、元素数组、HTML 字符串或 jQuery 对象,以插入到匹配元素集中每个元素的末尾。

于 2013-03-31T10:45:11.723 回答