Имам куп диве, които принадлежат към определен клас, казват раздели. и семантичната структура изглежда по следния начин:
<div class = "tabs" >_______</div>
<div class = "tabs" >_______</div>
<div class = "tabs" >_____</div>
Лесно е достъпът до първия и последния елемент на div като
$(".tabs:first") or
$(".tabs:last")
но да стигнем до 2-ра (и ако приемем, че има много други divs вътре тогава всички divs, различни от първата или последната) изглежда да доведе до синтаксис грешка за мен като:
$(".tabs:second") or $(".tabs:third")
не очаквайте работа.
Може ли някой да определи какво не е наред тук?
Отговори:
3 за отговор № 1Разгледайте jQuery :first
селекторна документация:
http://api.jquery.com/first-selector/
Ще забележите, че това е разширение jQuery и не е част от CSS спецификацията. Също така :first
е еквивалентно на :eq(0)
, това означава, че ако искате да получите втория елемент, можете да го направите :eq(1)
.
Ако нямате нужда от филтър в CSS селектора, можете просто да получите елемента с .eq метод като този:
$(".tabs").eq(0) // get the first element
$(".tabs").eq(1) // get the second element
$(".tabs").eq(2) // get the third element
$(".tabs").eq(-2) // get the second to last element
$(".tabs").eq(-1) // get the last element
6 за отговор № 2
Опитайте да използвате eq()
селектор, забележете, че индексът е на нула:
$(".tabs:eq(1)");
6 за отговор № 3
Има два начина да направите това, като използвате .eq()
или метода :eq()
селектор.
Методът .eq ():
Начинът, по който документацията на jQuery препоръчва да направите това, е да използвате .eq()
метод.
// eq() is zero-based, so this would get the second element
$(".tabs").eq(1)
Една удобна функция е това .eq()
също може да отнеме отрицателно число, което причинява функцията да започне от края вместо.
// This would take the second element from the end
$(".tabs").eq(-2);
Селекторът eq ()
jQuery също осигуряват :eq()
селектор, който основно работи по същия начин .eq()
метод. Така че можете да направите това също:
$(".tabs:eq(1)")
Забележете, че въпреки тази работа, предпочита се да използвате .eq()
метод вместо селектора. Методът има по - добро представяне в съвременните браузъри и :eq()
селекторът не поддържа отрицателни числа, така че е малко по-ограничен.