0

我有以下 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;">&nbsp;</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;">&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>

Jquery 代码给出了结果:

文字 4
文字 4

我还想在响应中获取 url,例如:

文字 4
文字 4

它在我使用时起作用: $(data).find(".eventtitle.notread").each(function () { 我比所有 uread 类还回

但是当我添加 a:contains('text 4') 它只返回文本字符串。

我为此http://jsfiddle.net/sawo/LJegm/4/创建了一个 jsfiddle

我试图用这个脚本实现的是所有带有“eventtitle notread”类和文本“text4”的未读消息(在/event页面上)都显示在第一页上。我想要第一页上的链接,这样我就可以直接访问该消息。

4

1 回答 1

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'));

另外请记住,在您的小提琴中,;在 id 之后有一个可能使您的 html 无效的位置,因此只需将其删除即可。

$('body').append('<div id="berichten"; style="border:

                                     ^_______________________________________Remove this
于 2013-06-17T18:19:42.600 回答