2009-11-09 5 views
1

제 목록의 9 번째 태그에 ID 태그를 추가 할 수있는 무언가를 찾고 있습니다. 가능한지 확실하지 않습니다. 누군가가 나를 도울 수 있다면jquery를 사용하여 li에 ID를 추가하십시오

<ul id="p7menubar"> 
    <li><a href="#" class="trigger">Home</a></li> 
    <li><a href="#" class="trigger">About Us</a></li> 
    <li><a href="#" class="trigger">Collections</a></li> 
    <li><a href="#" class="trigger">Stockists</a></li> 
    <li><a href="#" class="trigger">News/Press</a></li> 
    <li><a href="#" class="trigger">How to Order</a></li> 
    <li><a href="#" class="trigger">Terms & Conditions</a></li> 
    <li><a href="#" class="trigger">Contact Us</a></li> 
    <li><a href="#" class="trigger" XX ID TAG TO GO HERE XX >Online Store</a> 
    <ul id="menuitem_9_0"> 
     <li><a href="#" >Baby Clothing</a></li> 
     <li><a href="#" >Boys Clothing</a></li> 
     <li><a href="#" >Girls Clothing</a></li> 
    </ul> 
    </li> 
</ul> 

, 그 것 당신은 하나의 선택으로 모든 일을 할 수 있어야 jQuery를에 :

답변

6

큰 :

여기

코드입니다
$("#p7menubar > li:nth-child(9) > .trigger").attr("id","MyNewID"); 

"p7Menubar 내의 9 번째 LI 태그 안에 트리거 클래스로 태그 일치".

업데이트 : : 잘못된 것 같습니다. n 번째 자식 1-indexed입니다. 내가 틀렸다면

$('#p7menubar').find('li:eq(8)').attr('id', 'yourID'); 

누군가가 저를 수정하시기 바랍니다하지만이 처음에서 getElementById을 이용하여 최적화 믿는다 또한 더 명시 적으로 업데이트 (감사 Joel Potter)

+0

감사합니다! 잘 작동한다. – SoulieBaby

+1

이전의'li' 중 하나에 중첩 된리스트가있는 경우를 대비하여 직접 자식 "'>'"을 사용해야한다. – Joel

0

나는 가장 빠른 방법은 다음이 될 것입니다 생각 find() 이전의 단일 ID 선택기 때문입니다.

UPDATE

$('#p7menubar > li:eq(8)').attr('id', 'yourID'); 
+1

9 번째 레벨 이전에 레벨 1'li' 내에 하위'li'가 있으면이 방법은 작동하지 않습니다. –

+0

좋은 캐치. 중첩 목록에주의를 기울여야합니다. +1 –

0

마일스 '솔루션 (삭제)은 거의 빙고하지만 그는 ID의 "#"선택기 접두어를 놓쳤다.

나는 코드를 시험해 보았다.

<a onclick="$('#p7menubar').children()[8].id = 'QWERTY';">id it!!</a> 
관련 문제