如何通过jquery中的索引访问对象键?

时间:2017-02-23 11:52:02

标签: javascript jquery

我有一个通用的JavaScript函数,它将数据填充到列表中,如下所示:

// manage all drop down list control
var ajaxFillDropDownList = function (options, ddl) {

    ddl.find("option").remove();

    ddl.addClass("form-control required")
        .append($("<option />").attr("value", "")
        .text("------ Please Select a item --------")
        );

    $.ajax(options)
        .done(function (data) {

            var result = "";

            if (data.value) {
                result = JSON.parse(data.value);
            }

            $.each(result, function (rowIndex, r) {
                ddl.append($("<option></option>")
                    .val(r.?)
                    .text(r.?);
            });
        })
        .fail(function (error) {
            ddl.append($("<option />").attr("value", "").text("error in load"));
        });
}

调用以下函数:

// -- Fill dropdownlist
var fillMyList = function () {
    try {

        var options = {
            type: "POST",
            url: "/User/GetUserList",
            data: JSON.stringify({}),
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        }

        ajaxFillDropDownList(options, $("#ddlUser"));

    } catch (error) {
        ShowClientErrorMessage("client Error", error.stack, error.message);
    }
}

我希望在$ .each循环中动态获取结果键。我已经厌倦了使用下面的代码,但列表中填充了密钥名称。

.val("r." + Object.keys(r)[0])

如果有人能指导我,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

快速参考小提琴链接https://jsfiddle.net/rj1405/sd4mxpae/2/

键:Object.keys(obj)[0]

值:此处objresultmyObject数组中的对象。

obj[Object.keys(obj)[0]]

您将能够运行以下代码。

&#13;
&#13;
var myObject = [{
  property1: 'value 1'
}, {
  property2: 'value 2'
}]

var selectElement = document.getElementById('selectElement');
$.each(myObject, function (i, r) {
$(selectElement).append($('<option>',{
        value: Object.keys(r)[0],
        text : r[Object.keys(r)[0]]
    }));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="selectElement">
</select>
&#13;
&#13;
&#13;