2013-03-31 22 views
4

我想要传递属性到一个jQuery追加函数。它追加html但不附加属性。控制台中没有显示任何错误。 HTML代码:传递属性来追加Jquery函数不工作

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

JavaScript代码:

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

我想要的HTML看起来像

​​
+0

为什么你希望它在所有的工作?文档没有提到这方面的任何内容:http://api.jquery.com/append/。 –

回答

11

.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>

+0

谢谢!我曾经看过一篇netttus的教程,他用它来追加我的方式。你能再详细一点吗? –

0

你可以做

$(this).append('<span class="someClass">some text</span>'); 
0

进行追加第二个参数是(和我qu ote jQuery文档):

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

1

试试这个:

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