Я пытаюсь использовать coffeescript, чтобы скрыть заголовок группы, если все ли под ним скрыты, но это не работает. Журнал сообщает мне, что даже когда у каждого ли есть 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
...
...
Аргументами для .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")