Как выбрать и скрыть все, кроме первых 5 элементов в файле HTML (DOM) - PullRequest
5 голосов
/ 22 ноября 2011

Я пытаюсь использовать coffeescript / jQuery для следующих действий:

1) Получить все «темы», отображаемые в html (см. Ниже)

2) Скрыть все темы на дисплее, кроме первых 5 в списке.

enter image description here

Я пытался сделать следующее, но не работает

//Retrieve the entire list of and hide all but the first 5 topics in the list
$(".topics .topic")[5..-1].hide()

Может кто-нибудь посоветовать мне, как правильно извлечь список тем из документа HTML и впоследствии скрыть ВСЕ, кроме первых 5 тем?

Ответы [ 3 ]

12 голосов
/ 22 ноября 2011
$(".topics .topic").slice(5).hide();

http://api.jquery.com/slice/

3 голосов
/ 22 ноября 2011

Ваш код

$(".topics .topic")[5..-1].hide()

должен работать, так как он компилируется в $(".topics .topic").slice(5).hide() и срез jQuery делает именно то, что вы хотите.Итак, я предполагаю, что ваш код работает до того, как DOM будет в правильном состоянии.Вы пробовали

$(document).ready -> $(".topics .topic")[5..-1].hide()

?Что вы получаете, когда вы делаете

alert $(".topics .topic").length

в той же точке вашего скрипта?

Если проблема не в выборе, то проблема должна быть с hide(),который работает путем изменения встроенного CSS целей.Вы можете переопределить этот CSS в другом месте вашего кода.Используйте «Проверка элемента» для получения подробной информации.

3 голосов
/ 22 ноября 2011

Проверьте селектор jQuery gt () :

$(".topics .topic:gt(4)").hide();
...