#jquery
#jquery
Вопрос:
Я добавил класс ко всем td, связанным с моей таблицей. Я создал флажок и использую следующий код, чтобы установить флажок, принять его значение, которое является просто числом, добавить это число в столбец word и поместить его в переменную. Например, у меня есть класс column3. Я использую свой код для создания имени column3, используя значение флажка. Я хочу, чтобы она скрывала этот конкретный класс. Когда я сообщаю значение col, оно выдает мне правильное имя. Однако, когда я пытаюсь выполнить код, столбец не скрывается. Я не знаю, имеет ли это какое-то отношение к тому, как jQuery считывает мой самостоятельно созданный объект. Любые предложения будут оценены. Вот код для jQuery.
$("input:checkbox").click(function(){
if($(this).attr('checked')){
alert($(this).val());
var col ='column' $(this).val();
col = '".' col '"';
alert(col);
$(col).hide();
}
else {
$(col).show();
}
Комментарии:
1. В качестве дополнительного комментария, если вы используете последнюю версию jQuery, я бы настоятельно рекомендовал использовать
prop()
вместоattr()
.2. теперь, когда я использую версию jquery 1.6, что-то
3. ха, это забавно, я только что добавил это до того, как у вас появилось это в
4.
col
не определено в вашейelse
ветке.
Ответ №1:
Попробуйте это:
$("input:checkbox").click(function(){
var $this = $(this),
col = '.column' $this.val();
if ($this.attr('checked')){
$(col).hide();
}
else {
$(col).show();
}
});
Основная проблема заключалась в том, что вы заключали имя класса в кавычки, поэтому ваш селектор выглядел бы так: $('".column3"')
когда он должен был выглядеть так $('.column3')
.
Кроме того, вы объявляли col
внутри элемента управления «if checked» и пытались использовать его в инструкции else.
Ответ №2:
Вы пытаетесь сделать что-то подобное:
Вы не можете добавить значение "
к переменной col
. В итоге получается ‘».column1″‘ вместо просто ‘.column1’, например. Кроме того, col
переменная находится вне области видимости, когда вы пытаетесь отобразить столбец.
Ответ №3:
Это та, которая работает, я думаю, у вас проблема с двойными кавычками в
col = '".' col '"';
Я пробовал так, и это работает:
$(document).ready(function(){
$("input:checkbox").click(function(){
var col ='.column' $(this).attr("value");
if($(this).attr('checked')){
$(col).hide();
}
else {
$(col).show();
}
});
});