Jquery - Jquery 2 个下拉列表,从第二个列表中删除第一个选定的选项

Jquery - Jquery 2 dropdown lists, remove 1st selected option from 2nd list

我使用此代码允许我 select 从下拉列表 1 中删除一个条目,并从下拉列表 2 中删除相同的条目。

$("#BoxName").change(function(){
    var selectedItem = $(this).val();   
    var nextDropdown = $(this).parent("td").next("td").find("select.BoxComparisonClass");

    $(nextDropdown).find("option").show();
    $(nextDropdown).find("option:[value="+selectedItem+"]" ).hide();
})

这可以在此处看到:http://jsfiddle.net/8kvesskv/5/

这在 Chrome 和 Firefox 中工作正常,但在 Internet Explorer 和 Safari 中不工作。

有什么方法可以让它在所有四种浏览器上运行??

如果没有,还有其他方法吗?

谢谢

** 更新 ** 这似乎在 IE 中有效。不是隐藏它而是禁用它,这对我来说应该有效。

$("#BoxName").change(function () {
    var selectedItem = $(this).val();
    var nextDropdown = $(this).parent("td").next("td").find("select.BoxComparisonClass");

    $(nextDropdown).find("option").attr('disabled', false);
    $(nextDropdown).find("option:[value=" + selectedItem + "]").attr('disabled', true);

})

唯一的问题是,当行被复制时,禁用值也会被复制。如何复制该行,但新行中的所有选项都可用?

更新

将以下内容添加到我的代码似乎有效:

$newRow.find('*').andSelf().removeAttr('id').removeAttr('disabled');

禁用选项有效,而不是隐藏它们。

$("#BoxName").change(function () {
    var selectedItem = $(this).val();
    var nextDropdown = $(this).parent("td").next("td").find("select.BoxComparisonClass");

    $(nextDropdown).find("option").attr('disabled', false);
    $(nextDropdown).find("option:[value=" + selectedItem + "]").attr('disabled', true);

})