0

我正在使用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

4

1 回答 1

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();
});
于 2013-06-09T21:43:40.890 回答