選択ボックスから何かを選択すると、クラスが追加されます
このように選択されたオプション:
$(
'div#tabs input[type="text"],
select option:selected,
input:checked,
textarea'
).addClass('takethis');
しかし、別のオプションを選択しても、
takethis
最初に選択したオプションからクラスが削除されません。どうすればこれを強制できますか?
選択ボックスから何かを選択すると、クラスが追加されます
このように選択されたオプション:
$(
'div#tabs input[type="text"],
select option:selected,
input:checked,
textarea'
).addClass('takethis');
しかし、別のオプションを選択しても、
takethis
最初に選択したオプションからクラスが削除されません。どうすればこれを強制できますか?
選択されていないすべてのオプションからクラスを削除します。
$("select option:not(:selected)").removeClass("takethis");
次に、選択したものに追加します。
$("select option:selected").addClass("takethis");
次のようにremoveClassを使用できます。
$('#tabs').find('option').removeClass('takethis');
しかし、あなたが何をしようとしているのかはわかりません。このコード:
$('div#tabs input[type="text"],
select option:selected,
input:checked,
textarea').addClass('takethis');
すべてのテキストフィールド、すべての選択の選択されたオプション、すべてのチェックされたフィールド、およびすべてのテキストエリアを取得し、それにクラスを追加していtakethis
ます。それがあなたのやりたいことですか?
編集あなたがやろうとしていることがわかります。もしそうなら、なぜこれをやらないのですか?
var table = $('<table>');
$('div#tabs :input').each(function() {
var val = $.trim($(this).val());
var name = $(this).attr('name');
if(val) {
var td1 = $('<td>').html(name);
var td2 = $('<td>').html(val);
$('<input>').attr({
type: 'hidden',
name: name
}).appendTo(td2);
$('<tr>').append(td1).append(td2).appendTo(table);
}
});
$('#4tab').append(table);
これはもっと簡単ではないでしょうか、それともここで要件がありませんか?
removeClass
以前に選択したアイテムを呼び出す必要があります。