定义函数外部变量名称的JQuery

定义函数外部变量名称的JQuery,jquery,dynamic,Jquery,Dynamic,我有一个泛型函数,在这个函数中,我试图传递变量“name”,该变量将在for…each循环中使用。代码最终将填充引导IO选择组件 该函数使用AJAX调用Web服务,但由于许多方法都是类似的,因此我认为最好的做法是使其尽可能通用 function setSelectData(selectControl, selectCaption, endPointName, codeField, descrField) { $(selectControl).empty(); $(selectC

我有一个泛型函数,在这个函数中,我试图传递变量“name”,该变量将在for…each循环中使用。代码最终将填充引导IO选择组件

该函数使用AJAX调用Web服务,但由于许多方法都是类似的,因此我认为最好的做法是使其尽可能通用

function setSelectData(selectControl, selectCaption, endPointName, codeField, descrField) {
    $(selectControl).empty();

    $(selectControl).append('<option selected="true" disabled>' + selectCaption + '</option>');
    $(selectControl).prop('selectedIndex', 0);


    // using jQuery & 'beforeSend' callback
    var username='****username****';
    var password='****password****';
    var error;
    var url = 'http://<myserver>/Hibrs/hibrs/lookup/' + endPointName;

    $.ajax({
        type: "GET",
        dataType:"json",
        contentType: "application/json",
        url: url,
        xhrFields: {
            withCredentials: true
        },
        beforeSend: function (xhr) {
            xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username+':'+password));
        },
        success: function(data) {
              $.each(data.list, function (key, entry) {
                $(selectControl).append('<option value=' + entry.codeField + '>' + entry.descrField + '</option>')
              })
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log('Error in processing! ' + textStatus + '||' + errorThrown);
            alert("Error: " + textStatus + '||' + errorThrown);
        }
    });
}
感兴趣的两个变量名是codeField和descrField。JSON返回中的这些列名将根据代码类别而有所不同。通过传递列名,我希望能够使这个函数完全通用。但遗憾的是,它并没有起到说明codeField和descrField是未定义的作用。我在谷歌上搜索了StackOverflow,看看是否能找到解决方案。如果我硬编码返回的JSON列名(即entry.drugType和entry.shortDescription),Select控件将按预期填充


任何想法都将不胜感激

请注意,如果您将该脚本发送给任何人,您的用户名和密码将是公开的。不管你在这里隐藏了多少这些值。希望您有某种形式的OAuth2或类似的功能来为每个用户生成一个临时令牌。这些实际的脚本永远不会包含凭据。这段代码就是我试图为“真正的”应用程序编写的POC。谢谢您的关注。不要使用
entry.codeField
,试试
entry[codeField]
Bingo!谢谢你,贾斯汀。
$(window).on('load', function() {
   setSelectData(selectDrugType, 'Choose Drug Type', 'getDrugTypeValues', 'drugType', 'shortDescription')
});