2014-11-20 5 views
0

동일한 ID가있는 페이지에 두 개의 UL이 있습니다. 2 차 UL에서 5 리를 목표로하고 싶습니다. 이런 식으로 할 수 있습니까?두 번째 및 다섯 번째 자식 타겟팅

HTML :

<ul id="homepage-blockpaging"> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
</ul> 

<ul id="homepage-blockpaging"> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
</ul> 

제안 JQuery와 :

$('#homepage-blockpaging:eq(1) li:eq(4)').after('<li>New Item</li>'); 

선호하는 결과 :

<ul id="homepage-blockpaging"> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
<li>New Item</li> 
<li>Item </li> 
<li>Item </li> 
<li>Item </li> 
</ul> 
+0

왜 같은 ID를 가진 페이지에 두 개의 요소가 있습니까? http://www.w3schools.com/tags/att_global_id.asp 당신은 시련에서 스스로 힘든 생활을하고 있습니다. – lukkea

답변

0

첫째, 당신은 당신이 HTML에서 동일한 ID를 가진 두 개의 요소를 가질 수 없기 때문에, 클래스에 homepage-blockpaging을 변경할 수 있습니다 !

$(".homepage-blockpaging:eq(1)") // get 2nd ul 
    .find("li:eq(4)") // get the 5th li inside it 
    .after(// create a new li element 
     $("<li>") 
      .text("New Item") 
    ); 

Here의 데모 :

그런 다음, 당신은 당신이 이런 식으로 원하는 것을 수행 할 수 있습니다.

+0

이 문제가 해결되었습니다. 감사! – Industry213

0

당신은 사용하여 2 UL를 찾을 수 있습니다 $("ul")[1]

을 그리고, 찾을 수 5t h li, :eq과 함께 jQuery find() 메서드를 사용할 수 있지만이를 사용하려면 다시 jQuery 객체로 변환해야합니다.

그래서, 마지막으로 당신이 같은 끝낼 : 모든

$($("ul")[1]).find("li:eq(4)").after('<li>New Item</li>'); 
+0

이 질문에 대한 답변을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제나 댓글을 달 수 있으며 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)을 갖게되면 [모든 게시물에 댓글을 달 수] 있어야합니다 (http://stackoverflow.com/help/privileges/comment). –

+0

코드는 귀하가 요구 한 것과 정확히 일치합니다. 다른 것을 함축하려 했습니까? –

+1

스택 오버플로에 오신 것을 환영합니다! 이 코드가 문제를 해결할 수 있지만, [설명 포함] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)은 게시물의 품질을 향상시키는 데 정말로 도움이됩니다. 앞으로 독자의 질문에 답하고 있으며 코드 제안의 이유를 알지 못할 수도 있습니다. – gunr2171

관련 문제