2015-07-03 55 views
0

我使用Nightwatch.js來測試一個網站。現在我有這個html代碼:如何用CSS選擇器獲取子元素?

<div class="form-group"> 
    <div class="col-sm-6"> 
     <input id="inputTireManufacturer"> 
     </input> 
    </div> 
</div> 

我需要選擇input節點。但有其他節點id="inputTireManufacturer"。這意味着我需要一個選擇器,可以選擇一個元素class="form-group",其中包含一個元素class="col-sm-6",其中包含一個元素id="inputTireManufacturer"。類似這樣的:.form-group:.col-sm-6:#inputTireManufacturer 但這不起作用。我該怎麼做?

+2

但還有其他節點id =「inputTireManufacturer」。 - 然後你不使用HTML。文檔中的ID **必須是唯一的**。改爲使用班級。 – Quentin

+0

我用opera查看網站的html代碼,id =「inputTireManufacturer」在不同的節點出現好幾次。 – Garrarufa

+0

這仍然是不允許的。然而,它的工作原理是 – Quentin

回答

1

這具有在它的語法錯誤:

.form-group:.col-sm-6:#inputTireManufacturer 

固定它們(除去冒號):

.form-group.col-sm-6#inputTireManufacturer 

means

選擇與含有類屬性的任何元件單詞form-group,包含單詞col-sm-6的類屬性,以及等於inputTireManu的id屬性facturer。

您需要descendant combinators

.form-group .col-sm-6 #inputTireManufacturer 

選擇帶有等於inputTireManufacturer一個id屬性,它是包含單詞COL-SM-6類屬性的元素的後代的任何元素是具有包含單詞form-group的類屬性的任何元素的後代。


However

id屬性指定其元素的獨特標識符(ID)。 [DOM]

該值必須是唯一,該元素的主子樹中的所有ID必須包含至少一個字符。該值不能包含任何空格字符。

如果你想標記一個元素作爲一組類似元素的一部分,那麼使用一個類,那就是類的用途。

<div class="form-group"> 
    <div class="col-sm-6"> 
     <input class="inputTireManufacturer"> 
     </input> 
    </div> 
</div> 

.form-group .col-sm-6 #inputTireManufacturer 

選擇與包含單詞的一類屬性的任何元件inputTireManufacturer是與包含單詞COL-SM-6,其是任何元件與後代的一類屬性的任何元件的後代包含單詞form-group的class屬性。

相關問題