我有一个通用的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])
如果有人能指导我,我将不胜感激。
答案 0 :(得分:1)
快速参考小提琴链接https://jsfiddle.net/rj1405/sd4mxpae/2/
键:Object.keys(obj)[0]
值:此处obj
是result
或myObject
数组中的对象。
obj[Object.keys(obj)[0]]
您将能够运行以下代码。
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;