2016-09-26 38 views
2

我有一個HTML文檔,其中有包含可能會或可能不會有一個類,例如行的表:如何在類名未知時獲取元素?

<tr class=""> 
    <th>Name</th> 
    <td class="row-text">Myname</td> 
</tr> 

在上面的例子中,該行沒有一個類。不過,我需要獲取列值(即MyName)。這種行中唯一的唯一值就是標題標籤。

有沒有一種方法可以通過使用XPath的標題值來獲取正確的行?

+0

XPath可以在JavaScript中使用CSS選擇器,如JQuery嗎? – Matthew

+0

@Matt是的,像'「// * [包含(@ class,'my_css_class')]'' –

回答

3

是的,你可以用following-sibling axis做到這一點:

//th[. = 'Name']/following-sibling::td 

或者,通過tr父元素:

//tr[th = 'Name']/td 
1

@alecxe答案是正確的。我想補充其他類似的替代品:

這個看起來所有tr與包含'Name'(如果有一個以上的元素與文本「名稱」作爲他們的內容,他們會的一部分th也被選中);並選擇tr

//tr[contains(th, 'Name')]/td 

這等類似於裏面的td,但只給你與精確匹配的元素,也需要照顧正常化的空格,這是因爲有時完全匹配有用沒有找到,因爲在文本之前可能存在空格或換行符以防止完全匹配。它發現th移動到父(..)終於到了td

//th[normalize-space(text()) = 'Name']/../td 

記住,你可以使用$x("some/xpath")功能在Chrome和Firefox的控制檯來檢查的XPath;類似於CSS選擇器的$("some css")