我正在使用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;"> </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;"> </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;"> </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;"> </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
课程?
答案 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();
});