如何从JSON哈希创建HTML选择选项?

net*_*djw 4 javascript jquery json option

我有一个简单的JSON代码:

[{'1':'Name'}, {'2', 'Age'}, {'3','Gender'}]
Run Code Online (Sandbox Code Playgroud)

我的HTML中有一个select标记:

<select name="datas" id="datas"></select>
Run Code Online (Sandbox Code Playgroud)

我需要一种简单的方法来从这个JSON创建HTML选择框,如下所示:

<select name="datas" id="datas">
    <option value="1">Name</option>
    <option value="2">Age</option>
    <option value="3">Gender</option>
</select>
Run Code Online (Sandbox Code Playgroud)

Sha*_*oli 7

试试这个.

//Correct(missing colons) in the array items
var data = [{'1':'Name'}, {'2': 'Age'}, {'3': 'Gender'}];
Run Code Online (Sandbox Code Playgroud)

创建option元素,然后使用append方法将它们附加到select元素中.

var $select = $('#datas');
$.each(data, function(i, val){
    $select.append($('<option />', { value: (i+1), text: val[i+1] }));
});
Run Code Online (Sandbox Code Playgroud)

演示


Mic*_*hal 7

只是为了踢这里是一个纯javascript的答案,你也可能不需要一个数组这只是一个简单的对象就足够了

    <select name="datas" id="datas"></select>
    <script>

        html = "";
        obj = {
            "1" : "Name",
            "2": "Age",
            "3" : "Gender"
        }
        for(var key in obj) {
            html += "<option value=" + key  + ">" +obj[key] + "</option>"
        }
        document.getElementById("datas").innerHTML = html;

    </script>
Run Code Online (Sandbox Code Playgroud)