所以我做了几次尝试,我觉得我很接近,但找不到正确的ajax。选择元素是通过单击按钮动态制作的,并且它们具有相同的选项,但是我想要发生的是,一旦您选择了一个选项,该选项的所有其他实例都将从选择元素中删除,留下您选择的那个单独
这个只是删除了每个具有类' theClass'的选择元素。包括你改变的那个。
function removeOptions(optionValue) {
$('.theClass option[value='+optionValue+']').remove();
}
我最初尝试使用.each()函数,但无法调用“#e;”这个'正确的。
function removeOptions(optionValue) {
$( ".theClass").each( function () {
$(this + 'option[value='+optionValue+']').remove();
}
}
感谢任何帮助
答案 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
事件。