未选中删除类选择选项

时间:2009-03-19 14:13:39

标签: jquery css-selectors

当我从选择框中选择某个内容时,它会向

添加一个类

以这种方式选择选项:

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

但是当我选择其他选项时,它不会删除该类 我最初选择的选项中的takethis。 我怎么强迫这个?

3 个答案:

答案 0 :(得分:12)

从所有未选择的选项中删除类:

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

然后添加到选定的一个:

$("select option:selected").addClass("takethis");

答案 1 :(得分:3)

您可以像这样使用removeClass

$('#tabs').find('option').removeClass('takethis');
但是,我不确定你要做什么。这段代码:

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

抓取所有文本字段,所选所有选项,所有选中字段,所有 textareas并将类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);

这不会更简单,还是我错过了这里的要求?

答案 2 :(得分:2)

您需要在之前选择的项目上调用removeClass