0

チェックボックスがオンになっている場合、jQuery / javascript を使用して名前付き入力要素からクラスを削除しようとしています。

いくつかのチェックボックスがあり、それぞれに (ページの読み込み時に) 非表示のテキスト入力フィールドが付随しています。

チェックボックスとテキスト入力フィールドの名前は、それぞれ「question_X」と「question_X_description」です。(ここで、X は 0 から 100 までの数字です)

そのため、「この要素の名前」+「_説明」として定義されているコード内の変数を定義し、それを使用してクラスを削除する適切な要素を定義しようとしています。

これが私が試したことです:

$('input:checkbox').change(function(){

var x = $(this).attr('name').'_description';

if($(this).is(":checked")) {
    $('input[name="x"]').removeClass("hidden");
} else {
     $('input[name="x"]').addClass("hidden");
}
});

ただし、いずれかのチェックボックスをオンにしても何も起こりません。変数を正しく参照していますか?

4

3 に答える 3

3

コンソールを使用してください。エラー メッセージが表示されます。

創刊

var x = $(this).attr('name').'_description';
                           ^^^

これは、JavaScript で文字列を作成する方法ではありません。.JavaScript は文字列の結合には使用しません。それは使用しています+

var x = $(this).attr('name') + '_description';

第二号

$('input[name="x"]').

作成した文字列を探しているのではなく、x という名前の要素を探しています。

する必要がある

$('input[name="' + x + '"]').
于 2013-10-22T15:31:55.527 に答える
0
$('input[name="x"]').removeClass("hidden");

探しているもの:

<input name="x" />

試す

$(name="'+x+'").removeClass("hidden");
于 2013-10-22T15:34:08.730 に答える