0

在firePath的帮助下,我得到了这个:

.//*[@id='#table-row-51535240d7037e70b9000062']/td[1]

我的 HTML 的一部分看起来像这样:

  <table class="table table-bordered table-striped">
    <tbody>
      <tr>
      <tr>
       <tr id="#table-row-51535240d7037e70b9000062"> #this is the id that i want to get
      <td>             54           </td>            #this is the td that i know
      <td>
      <td>
       <td>Open</td>
    <td/>

我在这里真正想做的是,通过给出 td 值(54),我希望能够获取 id(解析 id),任何提示我该如何实现?

提前致谢。

PS:对不起我的英语,以及我缺乏知识:)

4

2 回答 2

1

首先,您的 HTML 无效(因为它包含嵌套<tr>节点)。Nokogiri 可能能够解析它,但如果可以的话,你应该在此之前修复它。

您可以通过以下 ruby​​ 代码获取该 ID:

doc.at_xpath("//td[contains(text(), '54')]/..")['id']
  1. //td[contains(text(), '54')]将抓取所有<td>包含54,的节点/..将转到它们的父节点。
  2. Document#at_xpath将仅获取第一个匹配项
  3. ['id']将获得匹配节点的属性。
于 2013-03-28T11:32:21.977 回答
-1

使用 jQuery

$(function(){
    // (i dont know if you have id for that td or not, it will be more easy if u do have id for that td)
    console.log($('table tbody tr td:first').closest('tr').attr('id')); // you can remove :first if you want to.
});

糟糕,我误读了您的问题,还有一件事,您的 tr 标签有问题。

于 2013-03-28T11:39:10.990 回答