在firePath的帮助下,我得到了这个:
.//*[@id='#table-row-51535240d7037e70b9000062']/td[1]
我的HTML的Parot看起来像这样:
<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:对不起,我的英语,我的知识不够:)
首先你的HTML是无效的(因为它包含嵌套的<tr>
节点)。Nokogiri可能能够解析它,但如果你可以,你应该在此之前修复它。
您可以通过以下ruby代码获取该id:
doc.at_xpath("//td[contains(text(), '54')]/..")['id']
-
//td[contains(text(), '54')]
将抓取包含54
的所有<td>
节点,/..
将转到它们的父节点。 -
Document#at_xpath
将只获取第一个匹配项 -
['id']
将获得匹配节点的属性。
使用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标签有问题。