2016-12-02 15 views
1

次のJavaScript関数はデータプランを出力します。最初の関数myDataPlanは2番目の関数dataPlanOutputで呼び出されます。JavaScript関数の出力変数を別の関数で使用する文字列として返します

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>'; 
     }); 
    }); 
} 

現在、私は、関数内#dataplan_listのdiv要素にmyDataPlan印刷を持っています。

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

最初の機能では、dataplan_listにコンテンツを追加するのではなく、コンテンツを返すことができますか?次に、myDataPlanの呼び出しをprintDataPlan変数と同じに設定します。 –

答えて

0

あなたのことができます:私はそれが何をしたいの関数は、変数を作成すると呼ばれるので、それは次のようになりますdataPlanOutputの最終行に追加された(それprintDataPlanを呼び出すことができます)されている場合であります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'); 
    }); 
}); 
} 
+0

Iveはこれを試しましたが、私は未定義のリターンを得ていますか? –

+0

myDataPlan内に直接追加すると定義されていませんか? – hack3rfx

+0

いいえ、うまくいきます –

関連する問題