4

選択ボックスから何かを選択すると、クラスが追加されます

このように選択されたオプション:

$(
    'div#tabs input[type="text"],
    select option:selected,
    input:checked,
    textarea'
).addClass('takethis');

しかし、別のオプションを選択しても、 takethis最初に選択したオプションからクラスが削除されません。どうすればこれを強制できますか?

4

3 に答える 3

12

選択されていないすべてのオプションからクラスを削除します。

$("select option:not(:selected)").removeClass("takethis");

次に、選択したものに追加します。

$("select option:selected").addClass("takethis");
于 2009-03-19T14:35:54.287 に答える
3

次のように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);

これはもっと簡単ではないでしょうか、それともここで要件がありませんか?

于 2009-03-19T14:16:37.547 に答える
2

removeClass以前に選択したアイテムを呼び出す必要があります。

于 2009-03-19T14:16:05.117 に答える