簡體   English   中英

而不是重復代碼塊,而是編寫此javascript的更有效方法?

[英]Instead of repeating blocks of code, more efficient way to write this javascript?

在這里,我只是一遍又一遍地重復相同的代碼,只是遞增變量名。 與對RSS2JSON實用程序的feed URL調用相同。 我能以某種方式寫這個,所以我不必重復嗎? 我實際上有8種不同的供稿。

<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>

向函數添加第二個參數以接受元素。

就像是:

<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>

希望你一切都好.. !!

您可以使用一個函數showFeed()和兩個參數分別為datavarFlag ,如下所示:

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM