Я хочу получить элемент ul, который вложен в некоторые промежутки сразу после элемента select.
Как я могу это сделать с помощью jQuery?

<select id="my-select" class="my-select">
  <option value="1">One value</option>
  ...
</select>

<span class="first-span">
  <span class="second-span">
    <span class="third-span">
      <ul class="my-list"> 
        <li class="">First li</li>
        ...
      </ul>
    </span>
  </span>
</span>
1
Duddy67 16 Сен 2021 в 13:00

2 ответа

Лучший ответ

В качестве альтернативы, если вы не можете использовать класс, используйте next() и find().

Примере:

let result = $('#my-select').next('span').find('ul li').text();
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="my-select" class="my-select">
  <option value="1">One value</option>

</select>

<span class="first-span">
  <span class="second-span">
    <span class="third-span">
      <ul class="my-list"> 
        <li class="">First li</li>

      </ul>
    </span>
  </span>
</span>
1
Shree 16 Сен 2021 в 10:12

Вы можете выбрать его разными способами, например по классу:

$('.my-list')

Или, если вы хотите быть более точным, например:

$('span.third-span > ul.my-list')

Рабочий пример:

console.log($('span.third-span > ul.my-list').children().length);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<select id="my-select" class="my-select">
  <option value="1">One value</option>
  ...
</select>

<span class="first-span">
  <span class="second-span">
    <span class="third-span">
      <ul class="my-list"> 
        <li class="">First li</li>
        ...
      </ul>
    </span>
  </span>
</span>
0
biberman 16 Сен 2021 в 10:06