【问题标题】:Have JavaScript function output variable as string to use in another function将 JavaScript 函数输出变量作为字符串用于另一个函数
【发布时间】:2017-04-17 22:28:18
【问题描述】:

以下JavaScript函数输出数据计划,第一个函数myDataPlan在第二个函数dataPlanOutput中被调用。

function myDataPlan(networkGroupId, countryCode) {
    data_url = apiURL + '/api/v4/networkGroups/' + networkGroupId + '/plansExt?countryCode=' + countryCode;
    jQuery.getJSON(data_url, function (dataPlan) {
        jQuery.each(dataPlan.list, function (i, list) {
            var currencySymbol = getCurrencySymbol(list.currency); 
            //Price
            var content = '<tr>';
            content += '<td>' + currencySymbol + list.price + '</td>';
            //Data Limits
            content += '<td>' + getDataLimit(list) + '</td>';
            //Data Length
            content += '<td>' + list.validityPeriodInDays + '&nbsp;Days</td>';
            content += '</tr>';
            jQuery(content).appendTo("#dataplan_list");
        });
    });
}

function dataPlanOutput(countryCode) {
    document.getElementById("dataplan_list").innerHTML = "";
    network_url = apiURL + '/api/v4/countries/' + countryCode;
    jQuery.getJSON(network_url, function (networkGroup) {
        jQuery.each(networkGroup.list, function (i, list) {
            var countryName = list.region;
            var networkGroupId = list.networkGroupId;
            myDataPlan(networkGroupId, countryCode);
            document.getElementById('dataplan_list').innerHTML += '<tr><td colspan="3" class="title-h4">' + countryName + '</td></tr>';
        });
    });
}

目前我有myDataPlan 打印到函数内#dataplan_list 的div。我想做的是当函数被调用时,它会创建一个变量(我们称之为printDataPlan),它被添加到dataPlanOutput 的最后一行,所以它看起来像这样:

document.getElementById('dataplan_list').innerHTML += '<tr><td colspan="3" class="title-h4">' + countryName + '</td></tr>' + printDataPlan;

【问题讨论】:

  • 在第一个函数中,不将内容追加到dataplan_list,可以只返回内容吗?然后将对 myDataPlan 的调用设置为等于您的 printDataPlan 变量。

标签: javascript jquery string variables


【解决方案1】:

你能从 myDataPlan 返回值吗?然后在 dataPlanOutput 中的 .innerHTML += 末尾执行它?

function myDataPlan(networkGroupId, countryCode) {
data_url = apiURL + '/api/v4/networkGroups/' + networkGroupId + '/plansExt?countryCode=' + countryCode;
jQuery.getJSON(data_url, function (dataPlan) {
    jQuery.each(dataPlan.list, function (i, list) {
        var currencySymbol = getCurrencySymbol(list.currency); 
        //Price
        var content = '<tr>';
        content += '<td>' + currencySymbol + list.price + '</td>';
        //Data Limits
        content += '<td>' + getDataLimit(list) + '</td>';
        //Data Length
        content += '<td>' + list.validityPeriodInDays + '&nbsp;Days</td>';
        content += '</tr>';
        return content;
    });
});
}

function dataPlanOutput(countryCode) {
document.getElementById("dataplan_list").innerHTML = "";
network_url = apiURL + '/api/v4/countries/' + countryCode;
jQuery.getJSON(network_url, function (networkGroup) {
    jQuery.each(networkGroup.list, function (i, list) {
        var countryName = list.region;
        var networkGroupId = list.networkGroupId;
        myDataPlan(networkGroupId, countryCode);
        document.getElementById('dataplan_list').innerHTML += '<tr><td colspan="3" class="title-h4">' + countryName + '</td></tr>' + myDataPlan('var1','var2');
    });
});
}

【讨论】:

  • 我试过这个,但我只是得到未定义的回报?
  • 但是当你直接在myDataPlan中追加时它不是未定义的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多