Jquery 从DOM数据元素动态构建select语句

Jquery 从DOM数据元素动态构建select语句,jquery,jquery-mobile,Jquery,Jquery Mobile,我需要根据ajax查询提供的表单数据动态构建一个select下拉列表。 我的DOM包含一个元素“organizations”,它有4个子元素。具有组织id和组织名称的子级 Organizations = { { id="2", name="Systems"} { id="4", name="Network"} { id="5", name="Operations"} { id= "7", name="Security"} } 我需要构建以下select子句 &l

我需要根据ajax查询提供的表单数据动态构建一个select下拉列表。 我的DOM包含一个元素“organizations”,它有4个子元素。具有组织id和组织名称的子级

Organizations = {
    { id="2", name="Systems"}
    { id="4", name="Network"}
    { id="5", name="Operations"}
    { id= "7", name="Security"}
}
我需要构建以下select子句

<select name='organization'>
    <option value="2">Systems</option>
    <option value="4">Network</option>
    <option value="5">Operations</option>
</select>

系统
网络
操作
如何动态构建select语句

Organizations = {
     { id="2", name="Systems"}
     { id="4", name="Network"}
     { id="5", name="Operations"}
     { id= "7", name="Security"}
}
鉴于上述目标:

var $el = $('<select></select>');  //create a new DOM Element with jQuery syntax
for (i in Organizations) { //iterate through the object and append options
  $el.append('<option value="' + Organizations[i]['id'] + '">' + Organizations[i]['name'] + '</option>');
}

你有什么问题?仅供参考-不要说select语句,这听起来像是在进行数据库查询。当我看到“select语句”时,我还以为你在客户端构建SQL查询,这是一个非常糟糕的主意。更好的标题可能是“动态创建select元素”。JS中的惯例是,如果变量名是构造函数,则它们的开头只能用大写字母,如果将其用于普通变量,将来阅读代码的人会感到困惑;您应该将
组织
重命名为
组织
。再次查看代码,
组织
不是有效的JS对象,该代码不应工作。它看起来更像是一个数组,以
[
]
开头/结尾,而不是
{
}
,并且需要在每个项之间使用逗号。如果它应该是一个对象,那么它需要在每个子对象的左边有一个标签和一个
,除了最后一个子项之外,后面还有一个逗号。在Dojo中,我使用了一个指向某个dom对象的数据存储,然后使用某个dojoselect标记,该标记为dom对象中的所有内容构建了一个html选择小部件
$('body').append($el);  //should work