var data='<div class="shout_msg">
<span class="username">3</span>
<span class="message">hello</span>
</div>
<div class="shout_msg">
<span class="username">0</span>
<span class="message">yo</span>
</div>
<div class="shout_msg">
<span class="username">0</span>
<span class="message">hey</span>
</div>
<div class="shout_msg">
<span class="username">0</span>
<span class="message">haha</span>
</div>';
$(data).find(".shout_msg").each(function(index){
console.log($(this).find("span.username").text() );
});
它没有返回任何东西。基本上,变量中显示的数据来自AJAX请求。但无论如何我犯了一个愚蠢的错误或其他什么。请纠正我。
答案 0 :(得分:5)
在这种情况下,您可能希望使用filter
,因为您没有在对象内搜索。
$(data).filter(".shout_msg").each(function(index){
console.log( $(this).find("span.username").text() );
});
这是一个快速演示。
答案 1 :(得分:2)
你应该在这里使用filter
$(data).filter(".shout_msg").
您需要访问第一级元素,但find会尝试获取不包含当前级别的元素,而是获取后代。
<强> Check Fiddle 强>