使用onchange删除select元素中其他值的值

时间:2015-07-14 10:51:08

标签: javascript jquery

所以我做了几次尝试,我觉得我很接近,但找不到正确的ajax。选择元素是通过单击按钮动态制作的,并且它们具有相同的选项,但是我想要发生的是,一旦您选择了一个选项,该选项的所有其他实例都将从选择元素中删除,留下您选择的那个单独

这个只是删除了每个具有类' theClass'的选择元素。包括你改变的那个。

function removeOptions(optionValue) {
    $('.theClass option[value='+optionValue+']').remove();
}

我最初尝试使用.each()函数,但无法调用“#e;”这个'正确的。

function removeOptions(optionValue) {
    $( ".theClass").each( function () {
        $(this + 'option[value='+optionValue+']').remove();
    }
}

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

您可以尝试向目标select添加临时类或自定义属性,以实现目标。

<select class="theClass" multiple>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
<select class="theClass" multiple>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>
<select class="theClass" multiple>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

$(function() {
    $("body").on("change", ".theClass", function() {
        $(this).addClass("selected");
        $(".theClass:not(.selected)>option[value=" + $(this).val() + "]").remove();
        $(this).removeClass("selected");
    });
});

这是JSFiddle

修改:即使在动态创建的onchange上也更改了要发布的select事件。