2014-04-01 68 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()您的需求,