在Jquery中使用参数值作为数组名称

时间:2014-11-27 14:59:16

标签: javascript jquery ajax json parameters

关于以下代码行,我遇到了问题:

$(document).ready(function () {
    getJsonDataToSelect("ajax/json/assi.hotel.json", '#assi_hotel', 'hotelName');
});
function getJsonDataToSelect(url, id, key){
                $.ajax({
                    dataType: "json",
                    url: url,
                    success: function(hotels){
                        $.each(hotels, function(){
                        $(id).append('<option value="'+ this.key +'">'+ this.key +'</option>')
                        });
                    }
                });
            }

json数据如下所示:

[
    {"hotelName":"hotel1"}, 
    {"hotelName":"hotel2"}, 
    {"hotelName":"hotel3"}
]

我需要使用“key”作为“hotelName”(arrayname)。提前,没有可能以不同的方式命名它......它是如此命名的。显然这不起作用,因为“key”在Json-File中没有定义为arrayname。

我的问题是,有没有办法,JQuery使用parametervalue而不是parametername本身。

提前致谢!

2 个答案:

答案 0 :(得分:0)

没有jQuery方式,但肯定是原生的javascript方式。您可以使用Object.keys返回传入的对象的键作为参数。

hotels.forEach(function(obj){
   console.log(Object.keys(obj)); // array of keys of obj
});

答案 1 :(得分:0)

改变两次this.key ---&gt;这[键]。

感谢Martin Ernst。