2017-01-13 5 views
0

ここでは、同じコードを何度も繰り返して、変数名を増やしています。 RSS2JSONユーティリティへのフィードurl呼び出しと同じです。 私は何とかこのように書くことができますので、私は繰り返す必要はありませんか?私は実際に8種類のフィードを使用したいと思います。コードのブロックを繰り返す代わりに、このJavaScriptを書くより効率的な方法はありますか?

<script type="text/javascript"> 
     var cpacontent = document.getElementById('cpa'); 
     function showFeed(data){ 
      if(data.status == 'ok'){  
       var feedlength = data.items.length; 
       var output = ''; 
       for(var i=0;i<1;++i){ 
        output += '<p><a href="' + 
        data.items[i].link + '" target="_blank" >' + 
        data.items[i].title + '</a>'; 
       } 
       cpacontent.innerHTML = output; 
      } 
     } 

     var fscontent = document.getElementById('fs'); 
     function showFeed2(data){ 
      if(data.status == 'ok'){  
       var feedlength2 = data.items.length; 
       var output2 = ''; 
       for(var i=0;i<1;++i){ 
        output2 += '<p><a href="' + 
        data.items[i].link + '" target="_blank" >' + 
        data.items[i].title + '</a>'; 
       } 
       fscontent.innerHTML = output2; 
      } 
     } 
     var wealthcontent = document.getElementById('wealth'); 
     function showFeed3(data){ 
      if(data.status == 'ok'){  
       var feedlength3 = data.items.length; 
       var output3 = ''; 
       for(var i=0;i<1;++i){ 
        output3 += '<p><a href="' + 
        data.items[i].link + '" target="_blank" >' + 
        data.items[i].title + '</a>'; 
       } 
       wealthcontent.innerHTML = output3; 
      } 
     }  
</script> 
<script type="text/javascript" src="http://rss2json.com/api.json?callback=showFeed1&rss_url=http%3A%2F%2Ffeedurlplaceholder1"></script> 

<script type="text/javascript" src="http://rss2json.com/api.json?callback=showFeed2&rss_url=http%3A%2F%2Ffeedurlplaceholder2"></script> 

<script type="text/javascript" src="http://rss2json.com/api.json?callback=showFeed3&rss_url=http%3A%2F%2Ffeedurlplaceholder3"></script> 
+0

_Can?!あなたは1つの関数しか必要としない/持っている必要がありますshowFeed() –

答えて

0

要素を受け入れるために2番目のパラメータを関数に追加します。以下のような

0

何か:

<script> 
function myFunction(selectorID, data) { 
    var element = document.getElementById('selectorID'); 
    if(data.status == 'ok'){  
     var dataLength = data.items.length; 
     var output = ''; 
     for(var i = 0; i < 1; ++i){ 
      output += '<p> <a href="' + 
      data.items[i].link + '" target="_blank" >' + 
      data.items[i].title + '</a>'; 
     } 
     cpacontent.innerHTML = output; 
    } 
} 

myFunction("cpa", cpaData); 
myFunction("fs", fsData); 
myFunction("wealth", wealthData); 
</script> 
+0

私はそのショットを与えていますが、API呼び出しで、それぞれ...(showFeed1、showFeed2、showFeed3)のために変化するコールバックvarがあることに気付きました。それが意味をなすならば、関数名としてインクリメントする。 – Andrew

0

あなたはよくやってホープ..!

次のようにdatavarFlagある二つのパラメータを一つの機能showFeed()を使用することができます私は何とか私は繰り返す必要はありません。これを書い_はいすることができます

<script type="text/javascript"> 
    function showFeed(data, varFlag){ 
     if(data.status == 'ok'){  
      var feedlength = data.items.length; 

      var output = ''; 
      for(var i=0;i<1;++i){ 
       output += '<p><a href="'; 
       output += data.items[i].link + '" target="_blank" >'; 
       output += data.items[i].title + '</a>'; 
      } 

      if(varFlag == 'cpa') { cpacontent.innerHTML = output; } 

      if(varFlag == 'fs') { fscontent.innerHTML = output; } 

      if(varFlag == 'wealth') { wealthcontent.innerHTML = output; } 
     } 
    } 

    var cpacontent = document.getElementById('cpa'); 
    showFeed(data, 'cpa'); 

    var fscontent = document.getElementById('fs'); 
    showFeed(data, 'fs'); 

    var wealthcontent = document.getElementById('wealth');  
    showFeed(data, 'wealth');  
</script> 
関連する問題