jQuery: как скрыть все элементы HTML, которые имеют значение больше определенного значения для данного тега - PullRequest
0 голосов
/ 02 мая 2010

Я отображаю элементы в иерархии, при щелчке по одному из них отображается следующий набор элементов в иерархии. Каждый элемент имеет тег под названием «уровень», значение которого равно 1 -.... (независимо от количества уровней для этой ветви дерева).

При щелчке по элементу я хочу, чтобы отображались следующие элементы, но если щелкнул элемент и уже отображены его подэлементы, я хочу скрыть все подэлементы.

Более формально: когда нажимается элемент с level = x если не отображаются элементы с уровнем> x затем отобразить все элементы так, чтобы уровень = х + 1 но если отображаются некоторые элементы с уровнем> x затем скрыть все элементы, где уровень> х

Как бы я создал селектор jQuery, который захватывает это.

1 Ответ

2 голосов
/ 02 мая 2010

Вместо того, чтобы беспокоиться об атрибутах «level», почему бы просто не переключить видимость всех дочерних элементов определенного типа? Пример:

$(document).ready(function() {
  $(".treeNode").click(function() {
   $(this).children(".treeNode").toggle();
  });
});

Я не уверен в вашей архитектуре, но это также предотвратит переключение узлов в другой ветви с одинаковым атрибутом "level".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...