当我从选择框中选择某个内容时,它会向
添加一个类以这种方式选择选项:
$(
'div#tabs input[type="text"],
select option:selected,
input:checked,
textarea'
).addClass('takethis');
但是当我选择其他选项时,它不会删除该类
我最初选择的选项中的takethis
。
我怎么强迫这个?
答案 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
。