2017-04-14 41 views
1

获取div容器内价值

$(document).ready(function(e){ 
 
    var newNode = $('#origin').clone(); 
 
    $('#container').append(newNode); 
 
    for(var i=0; i<$('#container').children().length; i++) 
 
    $('#result').append($('#container').children(i).html()+"<br>"); 
 
});
<html> 
 
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js'></script> 
 
<body> 
 
<span id='origin' my-data='somedata'>Hello</span> 
 
<div id='container'> 
 
    <span emoji-data='mmm'>a</span> 
 
    <span>b</span> 
 
    <span> 
 
    <span>b1</span> 
 
    <span>b2</span> 
 
    </span> 
 
    <span>c</span> 
 
</div> 
 
<p></p> 
 
<b>Content inside every nodes:</b> 
 
<div id='result'></div> 
 
</body> 
 
</html>

预期的结果是:A,B,.... 但在此,我只拿到了一个值。如何解决它?谢谢!

+0

尝试文本而不是HTML $('#结果')。append($('#container')。children(i).text()+“
”); –

回答

2

如果您想将搜索范围限制为某些元素,则不会将数字传递给children函数,而是传递选择器。例如,如果您只需要<span>元素,则可以使用$("#container").children("span")

而不是使用一个for循环的,你想用对孩子的each function,并使用一个回调函数添加自己的内容:

$(document).ready(function(e){ 
 
    var newNode = $('#origin').clone(); 
 
    $('#container').append(newNode); 
 
    $('#container').children().each(function(el) { 
 
    $('#result').append($(this).html()+"<br>"); 
 
    }); 
 
});
<html> 
 
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js'></script> 
 
<body> 
 
<span id='origin' my-data='somedata'>Hello</span> 
 
<div id='container'> 
 
    <span emoji-data='mmm'>a</span> 
 
    <span>b</span> 
 
    <span> 
 
    <span>b1</span> 
 
    <span>b2</span> 
 
    </span> 
 
    <span>c</span> 
 
</div> 
 
<p></p> 
 
<b>Content inside every nodes:</b> 
 
<div id='result'></div> 
 
</body> 
 
</html>

+0

谢谢!完成<3 – user3697373