2016-12-23 2 views

답변

1

Updated fiddle

JQuery와 방법 next() 바로 다음 형제를 얻을 수

jsfiddle.

문제점 :.open 요소에 ul 형제가 없습니다.

하기 권장 솔루션 :이 도움이

$(this).parent().next('ul').toggle(); 
//Or 
$(this).parents('li').next('ul').toggle(); 

희망 : 다음과 같은 ul 형제를 대상으로합니다 .next()를 사용하는 부모 li까지 이동합니다.

$('.open').click(function() { 
 
    $(this).parent().next('ul').toggle(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li> 11111111 <i class="open">open</i></li> 
 
    <ul> 
 
    <li> 1.1 </li> 
 
    <li> 1.2 </li> 
 
    </ul> 
 
    <li> 22222222222 <i class="open">open</i></li> 
 
    <ul> 
 
    <li> 2.1 </li> 
 
    <li> 2.2 </li> 
 
    </ul> 
 
</ul>

0

사용 .closest()는 DOM에서 선택 즉시 상향 링크 요소에 대한 neareast 가장 가까운 요소 리 .next()을 얻기 위해

$('.open').click(function() { 
    $(this).closest('li').next('ul').toggle(); 
}); 

Fiddle

0

이의 부모 li 요소를 가져옵니다 .open 그리고 나서 그 다음에 그 부분품을위한 li 요소. 당신이 $(this).next('ul').toggle();을 넣을 때

$('.open').click(function() { 
    $(this).parent('li').next('ul').toggle(); 
}); 
0

IT는 .open 개체가있는 <li> 내부의 다음 UL를 대상으로하지만, 거기에는 <ul>이 없습니다.

그 때문에 부모를 대상으로 <li>을 사용하고 다음에 <ul>을 타겟팅해야합니다.

$('.open').click(function() { 
    $(this).parent().next('ul').toggle(); 
}); 
:

코드는 다음과 같이해야한다