문제

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/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top