почему этот простой код jquery не работает? - PullRequest
2 голосов
/ 19 ноября 2011

Я пытаюсь отобразить разные данные, основанные на щелчке различных th элементов таблицы.Я использую jQuery 1.7

Но я не знаю, почему это не работает ??

Что я хочу, это чтобы пользователь нажимал на конкретную th таблицу, которая имеет классчто th id shoud display и другие таблицы должны быть скрыты в это время ..

Вот моя скрипка и, пожалуйста, выручите меня.

http://jsfiddle.net/78UKh/3/

Примечание: Пожалуйста, не предлагайте другие способы, потому что я уже написал много кода jquery на этой странице.

Спасибо

Ответы [ 4 ]

5 голосов
/ 19 ноября 2011

Вместо использования:

$('#detailsDiv > table').hasClass(''+thisvalue +'').show();

Использовать фильтр:

$('#detailsDiv > table').filter('.'+thisvalue +'').show();

или в пределах 1 селектора

$('#detailsDiv > table.' +thisvalue).show();

hasClass проверяет, есть ли в таблице класс, который возвращает логическое значение. Функция filter фильтрует текущие результаты.

Демонстрация в реальном времени: http://jsfiddle.net/78UKh/4/

1 голос
/ 19 ноября 2011
1 голос
/ 19 ноября 2011

Попробуйте так:

$('#detailsTab th').live('click', function(){
            var thisvalue = $(this).attr('id');
            $('table.' + thisvalue).show();
});

JS Fiddle demo .

Так как я предполагаю, что вы хотите показать только соответствующие table:

$('#detailsTab th').live('click', function(){
            var thisvalue = $(this).attr('id');
            $('table').not('#detailsTab, table.' + thisvalue).hide();
            $('table.' + thisvalue).show();
});

JS Fiddle demo .

Примечание : в вашей JS Fiddle id для ваших «Удобств» th было «удобствами», тогда как название класса для соответствующего table было « Удобства «. Я исправил это так, что они оба одинаковы в моих демонстрациях.

0 голосов
/ 19 ноября 2011

другой селектор, который вы можете использовать (лучше для других атрибутов)

$('#detailsDiv > table[class~="'+thisvalue+'"]').show();
...