我有以下Jquery代码
$('body').append('<div id="berichten"; style="border: 2px solid rgb(150, 0, 0); padding: 5px 7px; background: rgb(150, 0, 0) none repeat scroll 0% 0%; opacity: 0.85; position: fixed; z-index: 9000; top: 163px; text-align: left; font-family: Arial,Helvetica; font-size: 10px; -moz-border-radius: 5px; color: #FFFF66;"></div>');
(function worker() {
$.get('/events', function (data) {
var berichten = "";
$(data).find(".eventtitle.notread a:contains('text 4')").each(function () {
berichten += $(this).html() + "<br />";
});
setTimeout(worker, 10000);
$('#berichten').html(berichten);
});
})();
我从ajax请求获得的页面中的HTML数据是
<table>
<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 4</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>
Jquery代码给出了结果:
text 4
文本4
我也想在响应中获取网址:
我用的时候有效: $(data).find(“。eventtitle.notread”)。each(function(){ 我回馈所有未读的课程
但是当我添加:contains('text 4')时,它只返回文本字符串。
我为这个http://jsfiddle.net/sawo/LJegm/4/
创建了一个jsfiddle我尝试使用此脚本实现的是,所有未读消息(在/ event页面上)的“eventtitle notread”类和文本“text4”都显示在第一页上。我想要第一页上的链接,以便我可以直接访问该消息。
答案 0 :(得分:1)
您可以使用原生DOM元素的outerHTML属性而不是$(this).html()
。 jquery .html()将只提供您所关注的锚标记的内部内容,在这种情况下,它只是一个文本。因此,您应该使用outerHTML
来获取实际的锚标记html字符串。
berichten += this.outerHTML + "<br>";
或者你可以排成一行:
$('.eventtitle.notread a:contains("text 4")')
.clone()
.css('display', 'block')
.appendTo($('#berichten'));
另外请记住,在你的小提琴后面有一个;
,这可能会使你的html无效,所以只需删除它。
$('body').append('<div id="berichten"; style="border:
^_______________________________________Remove this