当我从选择框中选择某些内容时,它会向
以这种方式选择选项:
$(
'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
先前选择的项目。