2012-12-09 20 views
0
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<style type="text/css"> 
    ul ul 
    { 
     display: none; 
    } 
    ul li 
    { 
     list-style-type: none; 
    } 

</style> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('ul li').addClass('reveal'); 
     $('.reveal').live('click', function (event) { 
      $(this).children('ul').slideDown(); 
      $(this).siblings('li').children().slideUp(); 

     }); 
    }); 
</script> 

jQuery的的onclick节目里,隐藏所有syblings李和儿童元素

<ul> 
    <li>a 
     <ul> 
      <li>inner1 
       <ul> 
        <li>bonner1 
         <ul> 
          <li>donner1<ul> 
           <li>konner1</li> 
           <li>konner2</li> 
          </ul> 
          </li> 
          <li>donner2</li> 
         </ul> 
        </li> 
        <li>bonner2</li> 
       </ul> 
      </li> 
      <li>inner2</li> 
     </ul> 
    </li> 
    <li>b 
     <ul> 
      <li>inner3</li> 
      <li>inner4</li> 
     </ul> 
    </li> 
</ul> 

我想结束对李点击事件的所有sybling内部元素。此代码有效,但不是以所需的方式。它关闭了sybling元素,但不包含sybling元素内的子元素。我怎样才能做到这一点?

回答

1

我想你要找的是:

$(this).siblings('li').find('ul').slideUp(); 

这将效果基本show嵌套同级<li /> S内的所有​​元素。

这是你想要的吗?

+0

@Inrbob,是:)。我试过用$(this).siblings('li')。children()。find('ul')。slideUp();现在我已经知道find()函数搜索所有后代元素。万分感谢。 – black12

+0

@ black12欢迎光临:) – lnrbob