Удалить выбор класса опция не выбрана - PullRequest
4 голосов
/ 19 марта 2009

Когда я выбираю что-то из окна выбора, он добавляет класс к

выбран вариант таким образом:

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

Но когда я выбираю другую опцию, она не удаляет класс takethis из опции, которую я впервые выбрал. Как я могу заставить это?

Ответы [ 3 ]

12 голосов
/ 19 марта 2009

Удалить класс из всех невыбранных опций:

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

Затем добавьте к выбранному:

$("select option:selected").addClass("takethis");
3 голосов
/ 19 марта 2009

Вы можете использовать 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);

Разве это не будет проще, или я здесь пропускаю требование?

2 голосов
/ 19 марта 2009

Вам необходимо позвонить removeClass по ранее выбранному пункту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...