Как выбрать первого ребенка с помощью jQuery?
Как выбрать первый div в этих divs (один с id=div1
) с использованием первых дочерних селекторов?
<div class="alldivs">
<div class="onediv" id="div1">
</div>
<div class="onediv" id="div2">
</div>
<div class="onediv" id="div3">
</div>
</div>
Ответы
Ответ 1
Попробуйте с: $('.onediv').eq(0)
Из демонстрации: Другие примеры селекторов и методов, нацеленных на первый LI
кроме UL
:
.eq()
Метод: $('li').eq(0)
:eq()
селектор :eq()
: $('li:eq(0)')
.first()
Метод $('li').first()
:first
селектор: $('li:first')
:first-child
селектор :first-child
: $('li:first-child')
:lt()
селектор :lt()
: $('li:lt(1)')
:nth-child()
селектор :nth-child()
: $('li:nth-child(1)')
JQ + JS:
Array.slice()
: $('li').slice(0,1)
Вы также можете использовать [i]
чтобы получить индекс JS HTMLelement
из jQuery el. (массив) коллекция, например, например:
$('li')[0]
теперь, когда у вас есть представление элемента JS, вы должны использовать нативные методы JS, например:
$('li')[0].className = 'active'; // Adds class "active" to the first LI in the DOM
или вы можете (не плохой дизайн) обернуть его обратно в объект jQuery
$( $('li')[0] ).addClass('active'); // Don't. Use .eq() instead
Ответ 2
$('div.alldivs :first-child');
Или вы можете просто ссылаться на идентификатор напрямую:
$('#div1');
Как и было предложено, вам может быть лучше использовать дочерний селектор:
$('div.alldivs > div:first-child')
Если вы не используете , чтобы использовать first-child
, вы можете использовать :first
, как и предлагалось, или $('div.alldivs').children(0)
.
Ответ 3
Используйте селектор :first-child
.
В вашем примере...
$('div.alldivs div:first-child')
Это также будет соответствовать всем первым дочерним потомкам, которые соответствуют критериям выбора.
Пока :first
соответствует только одному элементу, селектор :first-child
может соответствовать более чем одному: по одному для каждого родителя. Это эквивалентно :nth-child(1)
.
Для первого только согласованного используйте селектор :first
.
В качестве альтернативы Феликс Клинг предложил использовать прямой селектор потомков, чтобы получить только прямые дети...
$('div.alldivs > div:first-child')
Ответ 4
Как упоминал @Roko, вы можете сделать это несколькими способами.
1.Используя селектор first-child jQuery - SnoopCode
$(document).ready(function(){
$(".alldivs onediv:first-child").css("background-color","yellow");
}
-
Использование jQuery eq Selector - SnoopCode
$( "body" ).find( "onediv" ).eq(1).addClass( "red" );
-
Использование jQuery Id Selector - SnoopCode
$(document).ready(function(){
$("#div1").css("background-color: red;");
});
Ответ 5
Привет, мы можем использовать метод по умолчанию "сначала" в jQuery
Вот несколько примеров:
Если вы хотите добавить класс для первого div
$('.alldivs div').first().addClass('active');
Если вы хотите изменить удаление класса onediv и добавить только к первому ребенку
$('.alldivs div').removeClass('onediv').first().addClass('onediv');