2012-06-06 4 views
1

Я знаю, что это должно быть просто, но я столкнулся с несколькими проблемами. Прежде всего, я не знаю, как получить все элементы класса и изменить их отображение. Я нашел .each метод с этим примером кода:jQuery - перебирать все элементы с классом и менять их стиль

$('.classname').each(function(index) { 
     alert(index); 
}); 

Что мне нужно сделать, вместо предупреждения, чтобы изменить отображаемое свойство элемента из «никто» блокировать "?

Вторая проблема заключается в том, что имя класса собирается из скрытого поля. Назовите эту переменную service. Когда я пытаюсь заменить «.classname» на «.» + Service, я получаю сообщение об ошибке «Синтаксическая ошибка, нераспознанное выражение:.».

Так что фактический код будет что-то вроде:

var service=$('#service').val(); 
$('.'+service).each(function(index) { 
     alert(index); 
}); 

Я уверен, что это не может быть сложным, но я не могу понять это.

Любое альтернативное решение, конечно же, приветствуется.

ответ

4

Заканчивать .show:

var service=$('#service').val(); 
$('.'+service).show(); // roughly equivalent to .css('display', 'block'); 

Однако, поскольку документация show указывает, метод возвращает совпавшие элементы display свойство в предыдущее состояние. Чтобы явно изменить свойство display стиля к block используйте .css:

$('.' + service).css("display", "block"); 
+0

Это работает для показа элементов, но я все еще получаю ошибку синтаксиса. Есть идеи по этому поводу? – jovan

+0

@robert: Вы уверены, что проблема связана с этим кодом? Синтаксически корректно –

+1

Возможно, ошибка заключается в том, какое значение вы получаете от '$ ('# service'). Val()'. Не могли бы вы привести пример значения внутри '# service'? Для того, чтобы приведенный выше код работал, он должен быть единственным именем юридического класса. – spinningarrow

0

попробовать FadeIn() и FADEOUT()

var service=$("#service").val(); 
$("."+service).fadeIn(); 
Смежные вопросы