首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果选择列表'a‘中选择了“b”和“c”,如何从相同的选择列表“b”和“c”中删除选择选项?

如果选择列表'a‘中选择了“b”和“c”,如何从相同的选择列表“b”和“c”中删除选择选项?
EN

Stack Overflow用户
提问于 2014-11-25 09:13:31
回答 5查看 193关注 0票数 0

我知道标题不是很描述,但我希望我能澄清我的问题:我有多个相同的选择下拉列表。现在,我不想做的是从所有其他下拉列表中删除一个选项,如果它是在其中一个中选择的。下面是一个示例:

我有ids 'a‘、'b’和'c‘的选择。所有这些文件都包含以下选项:

代码语言:javascript
运行
复制
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>

如果我现在选择了选择列表'a‘中的'1’选项,我希望用JQuery从列表'b‘和'c’中删除'1‘选项。

编辑:这基本上是我拥有的全部:http://jsfiddle.net/j91p8eo5/

有人有什么想法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-11-25 09:19:34

假设您想要删除而不是隐藏选项(使用remove元素使其完全从dom中删除):

代码语言:javascript
运行
复制
$("select").on("change", function() {
  //find all options with specific value(from the selected one) and remove(excluding self)
  $("select").not(this).find("option[value='" + this.value + "']").remove();
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
</select>
<select>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
</select>
<select>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
</select>
<select>
  <option value='1'>1</option>
  <option value='2'>2</option>
  <option value='3'>3</option>
</select>

参考资料

.find()

.not()

.remove()

票数 6
EN

Stack Overflow用户

发布于 2014-11-25 09:18:34

那你就可以这么做

代码语言:javascript
运行
复制
var elems = $('#a,#b,#c'); // cache the variable
elems.on('change', function(){ // attach a change handler
   elems.not(this) // remove the current element from the object
  .find('[option='+ $(this).val() +']') // find the option to be removed
  .remove(); // remove it
});
票数 0
EN

Stack Overflow用户

发布于 2014-11-25 09:25:07

您必须查看您的select选项是否包含您在第一个select元素中选择的字符串。然后从所有其他select元素中删除它,但您选择的元素除外。就这样。试试吧,

jQuery :

代码语言:javascript
运行
复制
$("#a").on("change", function(){
    $("select").not(this).children("option:contains(" + $(this).val() + ")").remove();
});

http://jsfiddle.net/codeSpy/b1qn5Lm9/

参考资料: http://api.jquery.com/not/http://api.jquery.com/children/http://api.jquery.com/contains-selector/http://api.jquery.com/remove/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27122642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档