2016-07-27 21 views
1

我有這個CSS選擇器:如何用css選擇器排除內部webelement?

$("td.cv-table-panel-element") 

因爲它出現在下面的截圖中,返回元素的列表:

List of elements returned by selector

所有這些元素都是一個表的列,每一列的內容是不同的。在該列表中的第一個元素包含一個複選框:

Contents of the first element

我想排除從最初的名單該元素。

請注意,僅僅忽略第一個元素將不會在這裏工作,因爲此複選框元素不一致,並不總是顯示。因此它需要被一個內部類別特別排除。

我都試過,沒有運氣以下:

$("td.cv-table-panel-element:not(.cv-checkbox)") 

有什麼建議?

+2

你需要你是否正在尋找一個jQuery或CSS選擇器是非常具體的。 jQuery有許多專有的選擇器功能,它們與大多數CSS選擇器實現不兼容,例如Selenium(基於您在問題中使用術語「webelement」),除非您使用的是jQuery特定的驅動程序。 – BoltClock

+0

非常感謝您的評論。你的觀察確實是正確的,我確實將它用於硒自動化。事實上,我對jQuery和CSS選擇器之間的差異缺乏一些理解。如果你能指點我的一些資源,我可以讓這些概念得到解決,我將不勝感激!再次感謝。 –

回答

1

這裏是一個純CSS選項:

td.cv-table-panel-element:not([align="center"]) 

此選擇使用:not functional notationattribute selector

下面是一個例子:

/* td elements are red */ 
 
.cv-table-panel-element { background-color: red;} 
 

 
/* td elements that DO NOT have the align="center" attribute are blue */ 
 
.cv-table-panel-element:not([align="center"]) { background-color: aqua; } 
 

 
td { height: 100px; width: 100px; }
<table> 
 
    <tr> 
 
    <td class="cv-table-panel-element"></td> 
 
    <td class="cv-table-panel-element"></td> 
 
    <td class="cv-table-panel-element" align="center"></td> 
 
    <td class="cv-table-panel-element"></td> 
 
    <td class="cv-table-panel-element" align="center"></td> 
 
    </tr> 
 
</table>