簡體   English   中英

用於選擇DIV的CSS選擇器(或JavaScript,如果需要的話),其中至少包含一個UL

[英]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_2fourth_level_1fifth_level_2

我可以使用哪個CSS選擇器獲得此結果?

編輯:

如果僅靠CSS無法實現,則可以使用JavaScript建議答案,盡管由於我的實際代碼的性質,如果可能的話,我真的想避免這種情況。

jsfiddle

這里有兩個選擇-都有缺點,但是您可以考慮一下:

您可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM