我有4个选择框,每个框包含完全相同的数据:
如果我在选择框[0]并选择"骑马",我想从剩下的每个选项中删除该选项,除了我有效的当前选择框.
我已经尝试过选择:not(:first-child)但这将删除,只有第一个孩子是选择,而不是任何其他孩子.
基本上,我需要从所有下拉列表中删除选定的选项,除了我选择的选项.
试试这个:
$('#select1').on('change', function() {
var val = this.value;
$('select').not(this).children().filter(function() {
return this.value === val;
}).remove();
});
Run Code Online (Sandbox Code Playgroud)
即每一个<select>即not this,得到它的children,但filter它的那些.value是不是和我一样,和remove他们.
http://jsfiddle.net/alnitak/CJYWn/的工作演示
如果您需要在第一个条目更改为其他条目时重新添加元素,您可能会考虑只是克隆整个元素,select同时过滤掉不需要的项目.
在这种情况下,过滤器需要!==,因为我们需要除了匹配的元素之外的所有元素,即
$('#select1').on('change', function() {
var val = this.value;
$('select').not(this).empty().append($(this).children().filter(function() {
return this.value !== val;
}).clone());
});
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/alnitak/ARUmX/的工作演示
| 归档时间: |
|
| 查看次数: |
2932 次 |
| 最近记录: |