我有一个包含多列的html表,在两列中我显示下拉列表 . 当用户从一个下拉列表中选择值时(选择Product1或Select Product2下拉列表),我想删除在一个下拉列表中选择的选项,并且不要在另一个下拉列表中显示该选项...
下面的示例代码适用于表中可用的所有下拉列表的类名相同(选择Product1,选择Product2),但在我的情况下,下拉列表的类名对于表中的每个列都是相同的,这打破了以下码 .
var $combo = $(".combo");
$combo.on("change", function () {
var select = this,
selected = $("option:selected", this).text();
$combo.each(function (_, el) {
if (el !== select) {
$("option", el).each(function (_, el) {
var $el = $(el);
if ($(el).text() === selected) {
$el.remove();
}
});
}
});
});
示例演示:http://plnkr.co/edit/VSdhVfhyIfI0rV6efrZv?p=preview
在上面的演示中,当用户从一行的下拉列表中选择产品“laptop”时,该行中存在的另一个下拉列表中不应显示“laptop”选项...
1 回答
查看同一行而不是循环遍历表中的所有选择 . 也可以更简单地匹配值
但请注意,您还有一个不同的问题,即如果用户更改了之前选择的一个,则无法重新插入一个 .
应考虑保留存储在变量中的所有选项的克隆,以便在后续更改期间查找丢失的选项