Javascript 可扩展列表折叠隐藏div元素(jQuery)

Javascript 可扩展列表折叠隐藏div元素(jQuery),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在开发一个你可以临时找到的网站。你会注意到,如果你点击任何一个可展开元素,它都能正常工作,但是当按下“全部折叠”按钮时,所有列表项中包含upvote和downvote图像的div元素都会消失,我无法确定我做错了什么(我是jQuery n00b!),js代码如下: /* Full list expansion functionality */ $('#expandList') .unbind('click') .click( function() { $('.collapsed').a

我正在开发一个你可以临时找到的网站。你会注意到,如果你点击任何一个可展开元素,它都能正常工作,但是当按下“全部折叠”按钮时,所有列表项中包含upvote和downvote图像的div元素都会消失,我无法确定我做错了什么(我是jQuery n00b!),js代码如下:

/* Full list expansion functionality */
$('#expandList')
.unbind('click')
.click( function() {
    $('.collapsed').addClass('expanded');
    $('.collapsed').children().show('medium');
})
/* Full list collapse functionality */
$('#collapseList')
.unbind('click')
.click( function() {
    $('.collapsed').removeClass('expanded');
    $('.collapsed').children().hide('medium');
})
如果没有选择器,则选择所有子项,包括带有投票的
s

在单个项目的切换脚本中,您正在使用

$(this).children('ul').toggle('medium');
如果没有选择器,则选择所有子项,包括带有投票的
s

在单个项目的切换脚本中,您正在使用

$(this).children('ul').toggle('medium');
这行代码查找并隐藏此元素中的所有子元素,因此它包含您的div

看看HTML

<ul id="expList">
 <li class="collapsed expanded">
       <div id="upvoted" style="display: inline-block;"><a href="#"><img src="img/votes/upvote.png" alt="upvote" width="14" height="14"></a></div>
      <div id="downvoted" style="display: inline-block;"><a href="#"><img src="img/votes/downvote.png" alt="downvote" width="14" height="14"></a></div> | SNOW KAYAKING
  //You want to hide only this                      
  <ul style="display: block;">

  </ul>
</li>
您可以更改代码以仅选择
UL
元素并将其隐藏:

$('.collapsed ul').hide('medium');

这行代码查找并隐藏此元素中的所有子元素,因此它包含您的div

看看HTML

<ul id="expList">
 <li class="collapsed expanded">
       <div id="upvoted" style="display: inline-block;"><a href="#"><img src="img/votes/upvote.png" alt="upvote" width="14" height="14"></a></div>
      <div id="downvoted" style="display: inline-block;"><a href="#"><img src="img/votes/downvote.png" alt="downvote" width="14" height="14"></a></div> | SNOW KAYAKING
  //You want to hide only this                      
  <ul style="display: block;">

  </ul>
</li>
您可以更改代码以仅选择
UL
元素并将其隐藏:

$('.collapsed ul').hide('medium');


是否有可以排除某些div id的children()选择器?好的,您可以将任何筛选器选择器与
children
一起使用。所以
:不(#确定,#id)
是可能的(尽管我猜您想使用类)(您应该引用该选择器字符串)。是否有可以排除某些div id的children()选择器?好的,您可以将任何筛选器选择器与
children
一起使用。所以
:不(#确定,#id)
是可能的(尽管我猜您希望使用类)(但您应该引用选择器字符串)