jQuery에서 nth 이전 형제를 선택 하시겠습니까?
-
06-07-2019 - |
문제
jQuery 선택기를 설정하려고하지만 어떻게 작성 해야하는지 잘 모르겠습니다.
다음과 같은 모습을 보이는 순서가없는 목록이 있습니다.
<ul>
<li>something</li>
<li>something</li>
<li>something</li>
<li>something</li>
<li class="last">something</li>
</ul>
이제 마지막 아이를 선택하고 싶다면 "ul li.last"또는 "ul.li:last"를 사용하여 할 수 있지만 마지막으로 두 번째 또는 세 번째 또는 20 일을 원한다고 말합니다. 이제 내가 그렇게할까요?
해결책
너는 사용한다 eq
:
$('ul li').eq(X);
여기서 X는 원하는 요소의 0 기반 인덱스입니다. 당신은 또한 사용할 수 있습니다 선택기 양식:
$('ul li:eq(X)');
그리고 당신은 또한 사용하여 비슷한 결과를 얻을 수 있습니다. nth-child
:
$('ul li:nth-child(X)');
문서는 이것에 대해 말할 것입니다. nth-child
그리고 eq
:
eq (index)는 단일 요소 만 일치하며, 이는 하나 이상과 일치합니다. 짝수, 홀수 또는 방정식을 가진 각 부모에 대해 다수. 지정된 인덱스는 0에서 시작하는 EQ ()와 대조적으로 하나의 인덱스입니다.
그래서 $('ul li').eq(19);
당신은 쿼리의 단일 20 번째 일치 요소를 얻을 것입니다 (따라서 문서에 둘 이상의 목록이 있으면 "19 번째 어린이 모두"를 얻을 수는 없습니다. $('ul li:nth-child(20)');
각각의 개별 20 번째 일치 목록 요소를 얻을 수 있습니다. <ul>
문서에서.
편집하다:
"Second to Last"와 같은 일을하려면 제정신 방법은 다음과 같습니다.
var $ul = $('#mylist > li');
var $el = $ul.eq($ul.length-2);
그러나 길이 -2가 0 이상인지 확인하기 위해 수표를 작성해야 할 것입니다.
다른 팁
마지막 3 번째를 원하십니까?
var $ul = $("ul li");
$ul.find(":eq(" + Math.max(0, $ul.length - 3) + ")");
빠른 설명 : $ ul (jQuery 객체 인)의 길이는 얼마나 많은 li가 발견되는지입니다. 따라서 ": eq (n)"선택기와 함께 사용하여 원하는 색인에서 Li를 얻을 수 있습니다.
목록이 너무 짧은 경우 Math.Max를 사용했습니다 (3 Li 's 미만).
이것은 또한 효과가 있지만 가장 좋은 방법은 아닙니다.
var $ul = $("ul li:last").prev().prev();
셋째와 20 세의 경우 할 수 있습니다 ul li:eq(3)
그리고 ul li:eq(20)
. 마지막으로, 당신은 무언가를 할 수 있습니다 nth-child
'에스 equation
인수 옵션, 확실하지는 않지만.
alert($('ul li').eq(3).text());
그것은 세 번째 목록 항목의 텍스트를 경고합니다.
JQuery 팀은이 기능을 버전 1.9에 추가했습니다
당신은 그것에 대해 읽을 수 있습니다 http://api.jquery.com/nth-rast-child-selector/