jQuery:如果选项已经不存在,如何在多个 SELECT 元素中添加选项?

标签 jquery html-select

我会用代码解释我的情况。

HTML:

<div class="list1">
  <select class="select250">
    <option class="temp" selected="selected" name="filter[]">Select</option>
    <option class="" value="George" name="filter[]">George</option>
    <option class="" value="Ben" name="filter[]">Ben</option>
  </select>
</div>
<div class="list2">
  <select class="select251">
    <option class="temp" selected="selected" name="filter[]">Select</option>
    <option class="" value="Sarah" name="filter[]">Sarah</option>
    <option class="" value="Alex" name="filter[]">Alex</option>
    <option class="" value="Natalie" name="filter[]">Natalie</option>
  </select>
</div>
<div class="list3">
  <select class="select252">
    <option class="temp" selected="selected" name="filter[]">Select</option>
    <option class="" value="Mobile" name="filter[]">Mobile</option>
    <option class="" value="Car" name="filter[]">Car</option>
    <option class="" value="Computer" name="filter[]">Computer</option>
  </select>
</div>

JS(在 PHP 中使用):

<script type="text/javascript">
  $('.select<?php echo $sid?>').change(function() {
    $('.temp', this).remove();  // THIS IS FINE
    if ($('option').siblings('.temp')) { } 
    else { $('select').prepend('<option name="filter[]" selected="selected" class="temp">Select</option>');  // THIS IS NOT WORKING 
    }
  });
</script>

我想做的是 - 每当选择一个选项时,它应该删除该列表中的“选择”选项,但仍保留其他列表上的“选择”选项。这部分似乎工作正常。接下来要做的事情是 - 当在另一个列表上选择一个选项时,它应该在除选择它的列表之外的所有其他列表上返回选择。我尝试为其编写代码,如您在上面看到的,但无法超越它。如果有人能引导我朝正确的方向前进,那就太棒了。谢谢。

最佳答案

试试这个..这仍然可以优化..

$('[class^=select]').on('change', function() {
    $('.temp', this).remove();
    var $that = $(this);
    $('select').not($that).each(function() {
        if (!$(this).find('option.temp').length > -1) {
            $(this).prepend('<option name="filter[]" selected="selected" class="temp">Select</option>');
        }
    });
});​

<强> Check Fiddle

关于jQuery:如果选项已经不存在,如何在多个 SELECT 元素中添加选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13134444/

相关文章:

jquery - 重新定位网页上的 'absolute' 元素 - CSS

c# - 最佳实践 : use enum or not to store dropdown values

javascript - HTML 选择的 onClick 事件

javascript - 如何在选择标签的更改时切换选定的 true 或 false?

jquery - 如何同时删除多个append()<option>和<div>?

jquery - MVC4 razor 中带有文本框的 DropDownList

javascript - SmoothDivScroll的 "running ticker"只滚动一次

JavaScript - 可拖动的画廊 slider

javascript - 我的 jQuery 链接不正确

javascript - jQuery 动画函数可能存在语法错误