2016-10-18 7 views
-2

내 코드는 아래와 같습니다. 슬라이더 스크립트에서 생성됩니다.jquery에서 요소의 n 번째 자식을 얻는 방법

<ul class="slick-dots" style="display: block;"> 
    <li aria-hidden="true"> 
     <div style="width:100%;height:100%;"> 
      <img style="pointer-events:none;" osrc="images/1234.jpg"> 
     </div> 
    </li> 
    <li aria-hidden="true"> 
     <div style="width:100%;height:100%;"> 
      <img style="pointer-events:none;" osrc="images/234.jpg"> 
     </div> 
    </li> 
    <li aria-hidden="true"> 
     <div style="width:100%;height:100%;"> 
      <img style="pointer-events:none;" src="images/456.jpg"> 
     </div> 
    </li> 
    <li aria-hidden="false" class="slick-active"> 
     <div style="width:100%;height:100%;"> 
      <img style="pointer-events:none;" src="images/7809.jpg"> 
     </div> 
    </li> 
</ul> 

다른 버튼 클릭을 기반으로 모든 리를 트리거하고 싶습니다.

같은 코드를 사용해 보았습니다. 그러나 그들 모두가 세트의 마지막 부분을 트리거합니다.

$("ul.slick-dots li").eq(1).trigger("click"); 
$($('ul.slick-dots').children()[2]).trigger("click"); 
$('.slick-dots > :nth-child(2)').trigger("click"); 

다른 해결책이 있습니까? 내 코드가 잘못 되었나요?

+2

체크 아웃은 : https://api.jquery.com/nth-child-selector/ – Alex

+1

나는 첫번째 생각하고 세번째는해야 ('.slick-dots li : nth-child (2) ')'로 쓸 수있다. – guradio

+0

코드는 우리가 기대하는 바를 모를 정도로 예상대로 작동해야 하는가?! –

답변

0

$('#fire').click(function(){ 
 
fireClick(0);// for example u want to trigger the first li here 
 
}); 
 
$('li').click(function(){ 
 
    $(this).css('border','1px solid black'); 
 
}) 
 
function fireClick(element){ 
 
      var myTriggerPoint=element; 
 
      $("ul.slick-dots li").each(function(i,ele){ 
 
       if(i==myTriggerPoint){ 
 
        $(ele).trigger("click"); 
 
       } 
 
      }); 
 
     }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="slick-dots" style="display: block;"> 
 
    <li aria-hidden="true"> 
 
     <div style="width:100%;height:100%;">list1 
 
     </div> 
 
    </li> 
 
    <li aria-hidden="true"> 
 
     <div style="width:100%;height:100%;">list2 
 
     </div> 
 
    </li> 
 
    <li aria-hidden="true"> 
 
     <div style="width:100%;height:100%;">list3 
 
     </div> 
 
    </li> 
 
    <li aria-hidden="false" class="slick-active"> 
 
     <div style="width:100%;height:100%;">list4 
 
     </div> 
 
    </li> 
 
</ul> 
 
<div id='fire'>fire click</div>

+0

예제에서, myTriggerPoint = 1의 경우, 첫 번째가 아닌 두 번째'li'을 대상으로합니다. 어쨌든, 각각을 쓸모가 없습니다 고리. OP 게시 된 코드가 더 좋음 –

+0

@Wolff, thak u는 – nivendha

+0

코드를 수정하여 할당 된 것이 아닌 마지막 li 요소를 트리거합니다. – Alchemist

0

나는 당신이 어떤 <li>

에 많은 ListItems 참고하시기 바랍니다 <li/> 또는 단지 간단한 클릭을 선택하는 방법을 여기에 몇 가지 예제를 가지고 : 그냥 예를 작동 확인하기 위해 해당 라인의 주석을 해제 .

// fake event 
 
$(document).on('click', 'ul.slick-dots li', function() { 
 
\t $(this).css('background', 'red'); 
 
}); 
 

 

 
// trigger first child 
 
//$('ul.slick-dots').children('li').get(0).click(); 
 
//$('ul.slick-dots').children('li:first-child').click(); 
 

 
// trigger second child 
 
//$('ul.slick-dots').children('li').get(1).click(); 
 

 
// trigger last child 
 
//$('ul.slick-dots').children('li').get(3).click(); 
 
//$('ul.slick-dots').children('li:last-child').click(); 
 

 
// trigger all 
 
//$('ul.slick-dots').children('li').each(function() { $(this).click(); })
ul { 
 
    width: 50%; 
 
} 
 

 
li { 
 
    height: 30px; 
 
    background: grey; 
 
    margin: 10px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul class="slick-dots" style="display: block;"> 
 
    <li aria-hidden="true"> 
 
     <div style="width:100%;height:100%;"> 
 
      asdf 
 
     </div> 
 
    </li> 
 
    <li aria-hidden="true"> 
 
     <div style="width:100%;height:100%;"> 
 
      asdf 
 
     </div> 
 
    </li> 
 
    <li aria-hidden="true"> 
 
     <div style="width:100%;height:100%;"> 
 
      asdf 
 
     </div> 
 
    </li> 
 
    <li aria-hidden="false" class="slick-active"> 
 
     <div style="width:100%;height:100%;"> 
 
      asdf 
 
     </div> 
 
    </li> 
 
</ul>

아니면이 모두 여기에 기록 기본적으로 Fiddle