【问题标题】:Hide parent if all children are not visible jquery如果所有孩子都不可见jquery,则隐藏父母
【发布时间】:2014-05-02 15:59:39
【问题描述】:

我正在尝试使用 coffeescript 来隐藏组的标题,如果它下面的所有 li 都被隐藏,但这不起作用。日志告诉我,即使每个 li 都有 display:none 它仍然可见。 (即,这是选择所有 lis,而它应该只选择那些可见的)

filterGroups = () ->
  $('.group').each (idx, item) ->
    list = $(item).find("ul.bordered-list li:visible")
    console.log list.length
    if list.length == 0
      $(item).hide()
    else
      $(item).show()

HAML 结构如下所示:

ul.bordered-list
  li.group
    h3.group-name-header
    ul.bordered-list
      li
    ...
  ...

【问题讨论】:

标签: javascript jquery css coffeescript haml


【解决方案1】:

.each() 的参数是 .each(idx, Element),而不是 .each(Element, idx)

filterGroups = () ->
  $('.group').each (idx, item) -> //correct argument order
    list = $(item).find("ul.bordered-list li:visible")
    console.log list.length
    if list.length == 0
      $(item).hide()
    else
      $(item).show()

您也可以使用this 关键字:

$('.group').each () ->
        list = $(this).find("ul.bordered-list li:visible")

【讨论】:

  • 抱歉打错了。我的代码是正确的,我编辑了我的问题。
  • 我的问题是,即使 li 元素被隐藏,它们也会被选中并添加到列表中
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
相关资源
最近更新 更多