使用jquery更新选择

时间:2013-02-27 05:06:16

标签: jquery

我做了一个快速的小提琴(不起作用),这有点说明我拥有的东西。我有一组选择和添加更多的可能性。现在,这些基于对象数组动态填充。我想要做的是,如果使用一个选项,我的选择不使用相同的选项。例如,select-1选项1-2-3-5为select-2,但是当用户选择一个选项时,选项需要在其他选项上消失,以及动态创建的选项。这些也应该是可逆的。谢谢你的帮助。fiddle

1 个答案:

答案 0 :(得分:1)

我使用选择器稍微简化了这段代码。

在这里你只需要有一个事件,你可以在选择器(或其他多重匹配选择器)中使用逗号来命中你想要的一切:

    $('#xAxis,#yAxis').on('change',function(){
        setControls();
        $('#main-controls select')
          .each(function()
          {
               $('#main-controls select')
                 .not($(this))
                 .find('option[value=' + $(this).val() +']')
                 .remove();
          });
    });

策略是设置控件,然后查找具有我们刚刚选择的内容的任何其他控件。如果我们可以hide()选项,这会更容易,但不幸的是,这不是跨浏览器的工作;我们必须remove()

setControls中,修改是仅添加选项,以便选择不具备该选项的选项。然后,只要我们想要将选择恢复到原始选择(不丢失当前选择),我们就可以调用它。

    function setControls(){
        $.each(series,function(k,v){
            $('#xAxis,#yAxis')
              .filter(':not(:has(option[value=' + k +']))')
              .append($('<option>')
              .attr({value: k})
              .text(v.name));
        });   
    }

http://jsfiddle.net/5YhpW/8/