Как получить весь HTML-код h1 + ul> li> details> summary + p, только если он имеет такую ​​структуру? т.е. он не получит HTML элемента тега ul, если у него нет вложенных li, деталей и т. д.

h1+ul>li>details>summary+p
<div>
  <h1>T1</h1>
  <ul class="toggle">
    <li>
      <details>
        <summary><strong>Q1</strong></summary>
        <p>Answer1</p>
      </details>
    </li>
  </ul>
  <h1>T2</h1>
  <ul class="toggle">
    <li>
     <details>
       <summary>Q2</summary>
       <strong>Answer2</strong>
     </details>
    </li>
  </ul>
</div>
0
f3lipflop 28 Фев 2021 в 13:23

1 ответ

Лучший ответ

Как это?

const $collection = $("ul.toggle").has("li>details>summary+p")
$collection.prev().addBack().addClass("red")
.red { background-color:red }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <h1>T1</h1>
  <ul class="toggle">
    <li>
      <details>
        <summary><strong>Q1</strong></summary>
        <p>Answer1</p>
      </details>
    </li>
  </ul>
  <h1>T2</h1>
  <ul class="toggle">
    <li>
     <details>
       <summary>Q2</summary>
       <strong>Answer2</strong>
     </details>
    </li>
  </ul>
</div>
1
mplungjan 28 Фев 2021 в 11:09