2010-05-18 50 views
4

看看CSS3規範,我找不到任何方法來選擇任何沒有子項的元素。是否有選擇器或解決方法來選擇沒有子項的任何元素

讓我解釋一下。

<body> 
<h1>Main Page</h1> 
<div id="main"> 
    <div class="post"> 
    <h2>Article 1</h1> 
    <p>some text</p> 
    </div> 
    <div class="post"> 
    <h2>Article 2</h1> 
    <p>some text</p> 
    </div> 
</div> 
</body> 

我在找一個CSS語法來選擇h1,兩個h2和兩個p。一種在任何頁面中選擇沒有孩子的所有元素的方法。 有什麼建議嗎?

對不起,我忘了添加「空白」部分,實際上我已經使用了*:空選擇器,但它不適用於任何有nodeText作爲子標籤的標籤。所以它適用於任何輸入,圖像,對象,但不適用於h2,h1或任何p。

+0

變通辦法是否適用? – 2010-05-18 11:33:11

+0

我認爲這可以通過CSS選擇器和Javascript的組合來實現,但不能單獨使用CSS。如果你對這樣的解決方案感興趣,我可以寫出來(可能使用jQuery)... – Ryley 2010-06-04 17:38:06

回答

1

作爲一個文本節點也是CSS的節點,你不能用任何CSS選擇器來完成它。用JavaScript做,你應該首先選擇只有一個孩子的所有節點,然後測試它是否只是一個文本節點。

0

使用:empty僞來做詭計,例如,選擇無子女(包括無文本節點... 沒有)的所有元素:

*:empty 
0

我不認爲這可以用CSS單獨完成。您將不得不循環所有元素測試hasChildNodes()上的虛假回報。這將是sl and,而不是我會建議。

相關問題