Таблица навигации JQuery.Показывать и скрывать все остальные строки? - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть макет таблицы, который я использую в качестве панели навигации.Это как древовидное меню, где некоторые строки являются заголовками для тех, которые находятся под ним.Это выглядит примерно так (некоторые теги удалены для удобства чтения):

<table id = "QLM">

<tbody>
<tr id = "QLM0">
<tr style = "display: table-row">
<tr id = "QLM2">
<tr style = "display: table-row">
<tr id = "QLM3">
<tr style = "display: table-row">
<tr id = "QLM4">
<tr style = "display: table-row">
</tbody>

</table>

Каждая строка содержит <td> с другой таблицей внутри.

У меня есть некоторый jQuery, который показывает и скрываетстроки, когда вы нажимаете на строки над ними (т. е. щелкните те, у которых есть идентификаторы, чтобы скрыть / показать те, у которых есть теги стилей).

Единственное, я хочу, чтобы, когда одна (id) строкапоказаны все остальные (строки стиля) скрыты.

Пока это мой jQuery:

menuHd.click(function() {
  var styleElm = $(this).find("td:last");
  var nextTR = $(this).next("tr:not([id])");
  if (nextTR.is(':visible')) {
   nextTR.hide();
   styleElm.css(cssClosed);
  } else {
   nextTR.show();
   styleElm.css(cssOpen);
  }
    });

Ответы [ 2 ]

0 голосов
/ 23 сентября 2010

попробуйте

$("tr:not([id])").hide();

до

nextTR.show();

в вашем коде.это должно решить вашу проблему и спрятать все остальные строки без атрибута id перед показом текущей строки.не проверено, хотя

0 голосов
/ 23 сентября 2010

Вы можете использовать селектор :even, чтобы выбрать идентифицированные строки, и селектор :odd, чтобы выбрать строки стиля, так как они всегда меняются между собой.

(Правка: даже на первом местепотому что выбор начинается с нуля, в соответствии с документацией )

...