4
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 要求からのものです。しかし、いずれにせよ、私はばかげた間違いか何かをしています。私を修正してください。

4

2 に答える 2

5

filterオブジェクト内を検索していないため、この場合に使用することをお勧めします。

$(data).filter(".shout_msg").each(function(index){ 
  console.log( $(this).find("span.username").text() );
});

ここに簡単なデモがあります。

http://jsbin.com/ocefeq/1/edit

于 2013-08-01T00:27:03.337 に答える
2

filterあなたはここを使っているはずです

$(data).filter(".shout_msg").

elements の最初のレベルにアクセスする必要がありますが、 find は現在のレベルを除く要素を取得し、代わりに子孫を取得しようとします。

フィドルをチェック

于 2013-08-01T00:27:09.457 に答える