[英]CSS selector (or JavaScript if needed) for select DIV's which contain at least one UL
假設我有一個這樣的層次結構:
<div class="first_level">
<div class="second_level_1">
<div class="third_level_1">
<div class="fourth_level_1">
<ul><li></li><li></li></ul>
</div>
<div class="fourth_level_2">
<div class="fifth_level_1">
</div>
<div class="fifth_level_2">
<ul><li></li><li></li></ul>
</div>
</div>
</div>
</div>
<div class="second_level_2">
<ul><li></li><li></li></ul>
</div>
</div>
我想選擇所有這些div,其中至少包含一個ul
。 因此,在上面的示例代碼中,將是divs second_level_2
, fourth_level_1
和fifth_level_2
。
我可以使用哪個CSS選擇器獲得此結果?
編輯:
如果僅靠CSS無法實現,則可以使用JavaScript建議答案,盡管由於我的實際代碼的性質,如果可能的話,我真的想避免這種情況。
這里有兩個選擇-都有缺點,但是您可以考慮一下:
您可以使用ul
將第二個類手動添加到div中:
<div class="fourth_level_1 div_with_ul_class">
注意:如果您在服務器上使用某些動態語言(例如PHP),則實際上可以很容易地實現它,而無需手動編碼。
或者,如果您想保持動態,我建議使用jQuery:
$("div > ul").parent().addClass("div_with_ul_class");
父選擇器在CSS中不可用,盡管有很多要求添加它。
jQuery有一個不錯的選擇器,稱為:has
; http://api.jquery.com/has-selector/
$('div:has(ul)');
將是jQuery選擇器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.