javascript - 使用 jquery/javascript 从下拉列表中选择时如何将数据存储到数组中

标签 javascript jquery

我有数据到数组中

Var myObj = {
"myScale" : ['2','3','4','5'];
"myValues" : ['2.0','3.0','4.0','5.0'];
}

Var myObj2 = {
"myScale" : ['2','3','4','5'];
"myValues" : ['2.0','3.0','4.0','5.0'];
}

需要从上述对象动态创建下拉菜单

<select>
  <optgroup label="myObj">
    <option >myScale</option>
    <option >myValues</option>
  </optgroup>
  <optgroup label="myObj2">
    <option >myScale</option>
    <option >myValues</option>
  </optgroup>
</select>

当我从 myObj/myObj2 选择 myScale 选项时,我需要获取值 myObj/myObj2.myScale 并动态打印到文档中。我比较新鲜,请帮助我。

最佳答案

试试这个:

function addGroup(obj, label, combo){
    if(!combo) combo = $("<select/>");
    var group = $('<optgroup label="' + label + '"></optgroup>');
    combo.append(group);
    for(var i=0;i<obj.myScale.length;i++){
        group.append('<option value="'+obj.myValues[i]+'">'+obj.myScale[i]+'</option>');
    }
    return combo;
}

然后这样调用它:

var combo = addGroup(myObj, "myObj");
addGroup(myObj2, "myObj2", combo);

请注意,此函数在上面的第一次调用中创建了一个新组合,对于其他组合,您可以将创建的组合作为其第三个参数传递。

或者,如果您已经在页面中选择了节点,则可以执行以下操作:

addGroup(myObj, "myObj", $("#mycombo"));
addGroup(myObj2, "myObj2", $("#mycombo"));

关于javascript - 使用 jquery/javascript 从下拉列表中选择时如何将数据存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034392/

相关文章:

javascript - 何时在无限滚动上获取更多内容?

javascript - Angular 12 将外部脚本加载为类型模块

javascript - 如何在不中断异步流程的情况下在 redux 中自动刷新 JWT?

javascript - 在委托(delegate)事件上触发最近的按钮

javascript - jquery不会更新动态生成的html

javascript - 使用 jQuery 计算溢出文本的宽度

javascript - jqGrid:如何锁定和解锁网格?

javascript - 使用右浮动元素的响应式网页设计

javascript - 使用 JavaScript 模仿占位符行为

javascript 闭包无法正常工作