选择框动态更改依赖选项

赞恩·迪布

我有一个问题,如果有人能帮我找到答案,我会非常高兴。

我有一个对象:

myObj = {
"red":{
    "10729,10730,10732":{
                "-2.75":["+1.75","+1.50","+1.25","+1.00","+0.75","+0.50","+0.25","-0.25"],
                "-2.50":["+2.00","0.00","-0.50","-0.75","-1.00","-1.25"],
                "-2.25":["+2.00","0.00","-1.50","-1.75","-2.00"],
                "-2.00":["+2.00","0.00","-2.00","-2.25"],
                "-1.75":["+2.00","0.00","-2.25"],
                "-1.50":["+2.00","0.00","-2.25"],
                "-1.25":["-2.25"],
                "-1.00":["+2.00","-2.25"],
                "-0.75":["+2.00","-2.25"],
                "-0.50":["+2.00","-2.25"],
                "-0.25":["-2.25"],
                "0.00":["+1.75","0.00","-2.25"],
                "+0.25":["-2.00","-2.25"],
                "+0.50":["+1.75","-1.75"],
                "+0.75":["+1.75","0.00","-1.50","-1.75"],
                "+1.00":["0.00","-1.50"],
                "+1.25":["+1.75","0.00","-1.25"],
                "+1.50":["+1.50","0.00","-1.00"],
                "+1.75":["0.00","-0.75","-1.00"],
                "+2.00":["+1.50","-0.50","-0.75"],
                "+2.25":["+1.50","-0.25","-0.50"],
                "+2.50":["+1.50","+0.25","0.00","-0.25"],
                "+2.75":["+1.50","+0.75","+0.50","+0.25"],
                "+3.00":["+1.75","+1.50","+1.25","+1.00","+0.75"],
                "+3.25":["+1.75","+1.50"]
    }
},

"gray":{
    "10730,10731":{
        "-1.00":["+0.25","0.00","-0.25","-0.50"],
        "-0.75":["+0.75","+0.50","+0.25","-0.50","-0.75"],
        "-0.50":["+0.75","-0.75"],
        "-0.25":["+0.75","-0.75"],
        "0.00":["+3.25","+3.00","+2.75","+2.50","+2.25","+1.00","+0.75","-0.50","-0.75","-1.50","-1.75"],
        "+0.25":["+1.00","-0.50"],"+0.50":["+1.00","-0.50"],"+0.75":["+1.00","-0.50"]
    }
}
};//end of myObj

我正在遍历它并将值附加到选择标记中,因为这里的选项是我的代码:

 for(h in myObj){ //h is color
    for (x in myObj[h]) {   //x is diameter
      for(y in myObj[h][x]){ //y is cylinder
        $(".cyl").append('<option value="">' + y + '</option>');               
         for(z in myObj[h][x][y]){  //// z is array of sph,and myObj[h][x][y][z] is the array elements
            $(".sph").append('<option value="">' + myObj[h][x][y][z] + '</option>');                
           }  ////sph
       }////cyl
    }
}

循环工作完美。我不想推送所有元素,但数组值。或诸如依赖选项列表之类的东西。例如,用户选择第一个圆柱体"-2.75",第二个选择标签将仅显示其数组中的值

["+1.75","+1.50","+1.25","+1.00","+0.75","+0.50","+0.25","-0.25"]

有任何想法吗?提前致谢。

吉乔

var myObj = {
  "red": {
    "10729,10730,10732": {
      "-2.75": ["+1.75", "+1.50", "+1.25", "+1.00", "+0.75", "+0.50", "+0.25", "-0.25"],
      "-2.50": ["+2.00", "0.00", "-0.50", "-0.75", "-1.00", "-1.25"],
      "-2.25": ["+2.00", "0.00", "-1.50", "-1.75", "-2.00"],
      "-2.00": ["+2.00", "0.00", "-2.00", "-2.25"],
      "-1.75": ["+2.00", "0.00", "-2.25"],
      "-1.50": ["+2.00", "0.00", "-2.25"],
      "-1.25": ["-2.25"],
      "-1.00": ["+2.00", "-2.25"],
      "-0.75": ["+2.00", "-2.25"],
      "-0.50": ["+2.00", "-2.25"],
      "-0.25": ["-2.25"],
      "0.00": ["+1.75", "0.00", "-2.25"],
      "+0.25": ["-2.00", "-2.25"],
      "+0.50": ["+1.75", "-1.75"],
      "+0.75": ["+1.75", "0.00", "-1.50", "-1.75"],
      "+1.00": ["0.00", "-1.50"],
      "+1.25": ["+1.75", "0.00", "-1.25"],
      "+1.50": ["+1.50", "0.00", "-1.00"],
      "+1.75": ["0.00", "-0.75", "-1.00"],
      "+2.00": ["+1.50", "-0.50", "-0.75"],
      "+2.25": ["+1.50", "-0.25", "-0.50"],
      "+2.50": ["+1.50", "+0.25", "0.00", "-0.25"],
      "+2.75": ["+1.50", "+0.75", "+0.50", "+0.25"],
      "+3.00": ["+1.75", "+1.50", "+1.25", "+1.00", "+0.75"],
      "+3.25": ["+1.75", "+1.50"]
    }
  },

  "gray": {
    "10730,10731": {
      "-1.00": ["+0.25", "0.00", "-0.25", "-0.50"],
      "-0.75": ["+0.75", "+0.50", "+0.25", "-0.50", "-0.75"],
      "-0.50": ["+0.75", "-0.75"],
      "-0.25": ["+0.75", "-0.75"],
      "0.00": ["+3.25", "+3.00", "+2.75", "+2.50", "+2.25", "+1.00", "+0.75", "-0.50", "-0.75", "-1.50", "-1.75"],
      "+0.25": ["+1.00", "-0.50"],
      "+0.50": ["+1.00", "-0.50"],
      "+0.75": ["+1.00", "-0.50"]
    }
  }
}; //end of myObj

//Doc ready
$(function() {
  fillColors();
});

// Change event of colors
$(document).on('change', 'select[name=color]', function() {
  fillDiameters($(this).val());
});
// Change event of diameter
$(document).on('change', 'select[name=diameter]', function() {
  fillCylinderrs($('select[name=color] option:selected').val(), $(this).val());
});

//function to fill all colors
function fillColors() {
  $('select[name=color]').append($('<option>select</option>'));
  for (var property in myObj) {
    if (myObj.hasOwnProperty(property)) {
      $('select[name=color]').append($('<option value="' + property + '">' + property + '</option>'));
    }
  }
}

//function to fill diameter
function fillDiameters(color) {
  $('select[name=diameter]').html('');
  $('select[name=cylinder]').html('');
  $('select[name=diameter]').append($('<option>select</option>'));
  for (var property in myObj[color]) {
    if (myObj[color].hasOwnProperty(property)) {
      for (var diameter in myObj[color][property]) {
        if (myObj[color][property].hasOwnProperty(diameter)) {
          $('select[name=diameter]').append($('<option value="' + diameter + '">' + diameter + '</option>'));
        }
      }
    }
  }
}

//function to fill cylinder
function fillCylinderrs(color, paramDiameter) {
  $('select[name=cylinder]').html('');
  $('select[name=cylinder]').append($('<option>select</option>'));

  for (var property in myObj[color]) {
    if (myObj[color].hasOwnProperty(property)) {
      for (var diameter in myObj[color][property]) {
        if (myObj[color][property].hasOwnProperty(diameter) && diameter == paramDiameter) {
          var cylinders = myObj[color][property][diameter];
          for (var cyl in cylinders) {
            $('select[name=cylinder]').append($('<option value="' + cylinders[cyl] + '">' + cylinders[cyl] + '</option>'));
          }
        }

      }
    }
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="color">
</select>
<select name="diameter">
</select>
<select name="cylinder">
</select>

你在寻找这样的东西吗。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS Access Forms:如何动态更改组合框中的选择选项?

来自分类Dev

MS Access Forms:如何在组合框中动态更改选择选项?

来自分类Dev

根据选择选项值动态更改文本框值

来自分类Dev

动态隐藏选择框中的选项

来自分类Dev

动态向选择框添加选项

来自分类Dev

动态隐藏选择框中的选项

来自分类Dev

选择框中使用角度的动态选项

来自分类Dev

动态选择框如何从我的文本框值向选择框动态添加选项

来自分类Dev

动态加载的选择框中的选择选项

来自分类Dev

从选择框中动态删除在其他选择框中选择的选项,

来自分类Dev

如何在动态选择框中添加选项

来自分类Dev

动态将选项值从数组添加到选择框

来自分类Dev

如何在选择框中动态分组选项

来自分类Dev

根据动态选择框的更改来更改URL

来自分类Dev

更改动态添加的选择选项元素的名称

来自分类Dev

根据所选选项动态更改背景颜色选择元素

来自分类Dev

更改动态添加的选择选项元素的名称

来自分类Dev

Angular:动态更改选择中的选项列表

来自分类Dev

我怎么知道选择框中的可用选项何时更改

来自分类Dev

如何动态更改选择框的名称属性

来自分类Dev

在动态添加表中的行时,选择框未更改

来自分类Dev

获取动态选择的选项

来自分类Dev

动态删除选项时如何在选择框中删除空选项

来自分类Dev

动态更改“目标”选项

来自分类Dev

Kendo用户界面[kendoDropDownList]-OnSelect默认选择框值,动态更改其他选择框值

来自分类Dev

如何在动态选择框中基于行显示已生成的选择选项

来自分类Dev

选项选择以动态更改下一个选择

来自分类Dev

在Javascript / jQuery中选择(触发更改)选择下拉列表的动态添加选项

来自分类Dev

根据其他选定的选项框更改选择框的值

Related 相关文章

  1. 1

    MS Access Forms:如何动态更改组合框中的选择选项?

  2. 2

    MS Access Forms:如何在组合框中动态更改选择选项?

  3. 3

    根据选择选项值动态更改文本框值

  4. 4

    动态隐藏选择框中的选项

  5. 5

    动态向选择框添加选项

  6. 6

    动态隐藏选择框中的选项

  7. 7

    选择框中使用角度的动态选项

  8. 8

    动态选择框如何从我的文本框值向选择框动态添加选项

  9. 9

    动态加载的选择框中的选择选项

  10. 10

    从选择框中动态删除在其他选择框中选择的选项,

  11. 11

    如何在动态选择框中添加选项

  12. 12

    动态将选项值从数组添加到选择框

  13. 13

    如何在选择框中动态分组选项

  14. 14

    根据动态选择框的更改来更改URL

  15. 15

    更改动态添加的选择选项元素的名称

  16. 16

    根据所选选项动态更改背景颜色选择元素

  17. 17

    更改动态添加的选择选项元素的名称

  18. 18

    Angular:动态更改选择中的选项列表

  19. 19

    我怎么知道选择框中的可用选项何时更改

  20. 20

    如何动态更改选择框的名称属性

  21. 21

    在动态添加表中的行时,选择框未更改

  22. 22

    获取动态选择的选项

  23. 23

    动态删除选项时如何在选择框中删除空选项

  24. 24

    动态更改“目标”选项

  25. 25

    Kendo用户界面[kendoDropDownList]-OnSelect默认选择框值,动态更改其他选择框值

  26. 26

    如何在动态选择框中基于行显示已生成的选择选项

  27. 27

    选项选择以动态更改下一个选择

  28. 28

    在Javascript / jQuery中选择(触发更改)选择下拉列表的动态添加选项

  29. 29

    根据其他选定的选项框更改选择框的值

热门标签

归档