2014-04-01 35 views
1

我目前使用下面的jQuery:

$("TD.info > font").text(); 

当以下HTML是网页上:

<td class="info"> 
    <font> 
    3001474535 
    </font> 
</td> 

我认为,通过与思想修改同一代码寻找一个包含文本“示例数据”的TD,然后跟随该类别结果的td。

$("TD.info:contains('Example Data:') > TD.results").text(); 

找到下面的HTML:

<tr> 
    <td class="info">Example Data:</td> 
    <td class="result">12345</td> 
</tr> 

我想身份这个数字,12345。我的问题是,它不是TD类=“信息”和TD类的第一个实例= “结果”。我的代码似乎没有工作,还有一点需要指出的是,它不是模式td.info> td.result的第一个实例,这就是为什么我使用包含“示例数据”的原因,因为这是独特的。

+0

你或任何人都知道一个直JavaScript的解决方案吗? – user3182586

+0

请参阅帖子。感谢分享。希望这有助于 – guest271314

回答

2

它不会工作,因为td元素是同级

一个解决办法是找到tdinfo类和文本Example Data:然后找到与一流的下一个兄弟会导致

$("TD.info:contains('Example Data:')").next('TD.results').text(); 

或找到trtdinfo类和文本Example Data:然后找到它的孩子td与类results

$("tr:has(TD.info:contains('Example Data:')) > TD.results").text(); 
+1

还有一般的兄弟操作符'〜' - '“TD.info:contains('foo')〜TD.results”' – Pointy

+0

您是否还是有人知道直线javascript解决方案? – user3182586

0

使用

$("TD.info:contains('Example Data:')").siblings("TD.results").text(); 

与您的代码的问题是,TD.results不是TD.info子元素。

您可以使用siblings()您的需求,