如何使用jquery选择某些文本节点?

时间:2015-05-06 20:06:35

标签: javascript jquery ajax jquery-selectors

我正在尝试使用ajax从网站获取一些数据。

这是我的代码,带有ajax POST方法:

$(data).find('。col-md-9 .panel:lt(5)')。each(function(){     console.log($(this).find('。panel-body .sp-card td:eq(1)center')。text());

控制台:

Mc-Wars Network IP:mc-wars.org 投票 - 服务器信息 网站

我只想获得第一线:Mc-Wars Network

请帮忙!

这是html代码的图像。我正在抓。

Html code

这是刮擦后控制台的图像。 (我只需要第一行。

console

这是来自网站Im scraping的代码:

<div onclick="location.href='//www.serverpact.com/vote-20129 ';" class="panel panel-default sp-plane">
                        <div class="ribbon ribbon-small ribbon-blue">
                            <div class="banner">
                                <div style="font-size: 14px;text-align: center;" class="text">#1</div>
                            </div>
                        </div>
                        <div style="padding: 5px;" class="panel-body">
                            <table class="sp-card">
                                <tbody><tr>
                                    <td style="font-weight: bold;vertical-align: middle;"><center><i class="fa fa-thumbs-up"></i><br>8384<br><br>#1</center></td>
                                    <td style="font-weight: bold;vertical-align: middle;">
                                        <center>
                                        Mc-Wars Network<br>
                                        <b>IP: mc-wars.org<br>
                                        <a style="margin-top: 5px;" class="btn btn-primary btn-sm" href="//www.serverpact.com/vote-20129 ">Vote - Server info</a> 
                                        <a style="margin-top: 5px;" class="btn btn-success btn-sm" href="http://mc-wars.org">Website</a>
                                        </b></center>
                                    </td>
                                    <td width="500px" class="hidden-xs">
                                    <a href="http://mc-wars.org" target="_blank"><img style="margin-top: 7px;margin-bottom: 3px;border-radius: 4px;" src="http://www.serverpact.com/b/20129.gif" alt="Mc-Wars Network" class="img-responsive hidden-xs"></a>
                                        <span style="font-size: 13px;">
                                            McWars is a minecraft pvp based server where you will have to build a fortress for your team and destroy the other teams base to win. With more than 10 different classes to choose, youll love it.
                                        </span>            
                                    </td>
                                </tr>
                            </tbody></table>
                        </div>
                    </div>

4 个答案:

答案 0 :(得分:1)

可能text()组合了所有子文本节点。

您需要的是将文本节点检索为节点然后获取其内容。 See this post举个例子。

答案 1 :(得分:1)

这是一个片段,我将centertd的子节点导航到正确的文本节点。请注意,空格会创建一个子节点,因此例如在center节点之前只有一个空白文本节点(在这种情况下并不重要,但它应该是您应该注意的事情)。

&#13;
&#13;
document.write('here you go:' + $('#firstDiv td:nth-child(2) center')[0].childNodes[0].textContent)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="firstDiv">
        <table id="coolTable">
           <tbody>
           <tr>
              <td>
              </td>
              <td>
                    <center>
                       The text I need!
                    <br>
                    <b>
                    The text I dont need!
                    </b>
                    </center>
             </td>
            </tr>
            </tbody>
         </table>
    </div>
&#13;
&#13;
&#13;

另请参阅:MDN: Whitespace in the DOM

答案 2 :(得分:1)

有办法做到这一点:

$(data).find('#firstDiv #coolTable').each(function () {
console.log($.trim($(this).find('tbody tr td:eq(1) center').contents()[0].nodeValue))});

答案 3 :(得分:1)

好的,你的问题已经发生了很大变化! 在.text()的末尾添加即可完成工作:

System.out.println

请注意,可以通过更改索引来捕获所有行,其中“0”是第一行,“1”是第二行,并且是连续的。