Ajax返回更多具有相同名称的类

时间:2013-06-09 21:33:42

标签: jquery ajax get

我正在使用jQuery的.get()函数来获取另一个页面(使用greasemonkey)。但是我仍然无法让我的代码正常工作。

$.get('/events', function(data) { 
    var info = $(data).find('.eventtitle.notread').html();
    alert('Load was performed.');
});

data包含我请求的网页,但info只包含一个元素.eventtitle.notread。您可以在下面的HTML代码中看到这一点:

<tbody>
    <tr>
        <td class='eventchkbox' width="2%"><input type="checkbox" name="del[]" value="2351446"  /></td>
        <td colspan="2" class='eventtitle notread'>
            <a name="event2351446" style="position:relative;top:-135px;left:-8000px;">&nbsp;</a><a href="/events/page/1/2351446#event2351446">Text 1</a>            </td>
        <td class="eventdate">09-06-2013 21:12:12</td>
    </tr>
    <tr>
        <td class='eventchkbox' width="2%"><input type="checkbox" name="del[]" value="2351440"  /></td>
        <td colspan="2" class='eventtitle '>
            <a name="event2351440" style="position:relative;top:-135px;left:-8000px;">&nbsp;</a><a href="/events/page/1/2351440#event2351440">Text 2</a>            </td>
        <td class="eventdate">09-06-2013 21:11:38</td>
    </tr>
    <tr>
        <td class='eventchkbox' width="2%"><input type="checkbox" name="del[]" value="2348501"  /></td>
        <td colspan="2" class='eventtitle '>
            <a name="event2348501" style="position:relative;top:-135px;left:-8000px;">&nbsp;</a><a href="/events/page/1/2348501#event2348501">Text 3</a>            </td>
        <td class="eventdate">09-06-2013 19:04:35</td>
    </tr>
    <tr>
        <td class='eventchkbox' width="2%"><input type="checkbox" name="del[]" value="2348489"  /></td>
        <td colspan="2" class='eventtitle notread'>
            <a name="event2348489" style="position:relative;top:-135px;left:-8000px;">&nbsp;</a><a href="/events/page/1/2348489#event2348489">text 4</a>            </td>
        <td class="eventdate">09-06-2013 19:04:01</td>
    </tr>
</tbody>

我的目标是在另一个页面上显示所有未读消息(包括时间戳)。如何从.eventtitle.notread获取所有data课程?

1 个答案:

答案 0 :(得分:1)

来自文档:

  

html的()

     

获取匹配集中第一个元素的HTML内容   元素或设置每个匹配元素的HTML内容。

所以:

$(data).find('.eventtitle.notread').html();

只获取与选择器匹配的第一个元素的HTML,而不是全部!

如果你尝试append() DOM的元素,你真的不需要获取HTML,但如果由于某种原因你需要返回的实际HTML字符串,你必须迭代:

var info = "";
$(data).find('.eventtitle.notread').each(function() {
   info += $(this).html();
});