#jquery
Вопрос:
Я хочу получить элемент 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:
Альтернатива, если вы не можете использовать класс, используйте 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>
Ответ №2:
Вы можете выбрать его многими способами, например, по классу:
$('.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>