2013-02-17 68 views
2

我需要基于表单数据动态构建选择下拉列表提供了ajax查询。 我的DOM包含一个元素“组织”与4个孩子。与组织ID和组织名称动态构建来自DOM数据元素的选择语句

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语句?

+1

什么是你有问题? – Blender 2013-02-17 22:54:08

+1

仅供参考 - 不要说选择语句,这听起来像你在谈论做数据库查询。 – Klik 2013-02-17 22:55:22

+0

当我看到'select statement'时,我还认为你在客户端建立了一个SQL查询,这是一个非常糟糕的主意。一个更好的标题可能会是“动态创建一个选择元素”。 JS中的约定是,如果它们是构造函数,只用大写字母来启动变量名称,将它用于普通变量会让将来读取代码的人感到困惑;你应该把'组织'重命名为'组织'。 – 2013-02-17 23:35:57

回答

2
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>'); 
} 

创建的元素然后附加到某个地方......

$('body').append($el); //should work