2013-05-25 81 views
-1

當我單擊一個錨標記時,此代碼會顯示額外的段落,但我不想要所有這些函數,因爲它會變得雜亂我想知道如何壓縮這個代碼到一個單一的功能我不介意jQuery,但我更喜歡JavaScript,但只是做什麼更有效。如何將所有這些函數壓縮到一個函數中 - Javascript

function showmore1() 
      { 
       var more_1 = document.getElementById("learnmore_1"); 
       if (more_1.style.display == "block") 
       { 
        more_1.style.display = "none"; 
        document.getElementById('showmore_1').innerHTML ='<a>Even More History</a>'; 
       } 
       else 
       { 
        more_1.style.display = "block"; 
        document.getElementById('showmore_1').innerHTML ='<a>Show Less</a>'; 
       } 
       } 
    function showmore2() 
      { 
       var more_2 = document.getElementById("learnmore_2"); 
       if (more_2.style.display == "block") 
       { 
        more_2.style.display = "none"; 
        document.getElementById('showmore_2').innerHTML ='<a>Even More Why programming</a>'; 
       } 
       else 
       { 
        more_2.style.display = "block"; 
        document.getElementById('showmore_2').innerHTML ='<a>Show Less</a>'; 
       } 
       } 
    function showmore3() 
      { 
       var more_3 = document.getElementById("learnmore_3"); 
       if (more_3.style.display == "block") 
       { 
        more_3.style.display = "none"; 
        document.getElementById('showmore_3').innerHTML ='<a>Even More Skills</a>'; 
       } 
       else 
       { 
        more_3.style.display = "block"; 
        document.getElementById('showmore_3').innerHTML ='<a>Show Less</a>'; 
       } 
      } 
    function showmore4() 
      { 
       var more_4 = document.getElementById("learnmore_4"); 
       if (more_4.style.display == "block") 
       { 
        more_4.style.display = "none"; 
        document.getElementById('showmore_4').innerHTML ='<a>Even More Accomplishments</a>'; 
       } 
       else 
       { 
        more_4.style.display = "block"; 
        document.getElementById('showmore_4').innerHTML ='<a>Show Less</a>'; 
       } 
      } 
+6

這個問題會更appropiate上http://codereview.stackexchange.com – Matt

回答

0

拉出代碼變化(變量)的函數裏面,然後再結合功能的比特和變量傳遞到功能插入。

function showmore(id, more, less) { 
    var more = document.getElementById('learnmore_'+id); 

    if(more.style.display == "block") { 
     more.style.display = "none"; 
     document.getElementById('showmore_'+id).innerHTML ='<a>'+more+'</a>'; 
    } else { 
     more.style.display = "block"; 
     document.getElementById('showmore_'+id).innerHTML ='<a>'+less+'</a>'; 
    } 
} 

然後使用它是這樣的:

showmore(1, 'Even more accomplishments', 'Show less'); 
+0

非常感謝 – user2349902

+0

當它將undefined和[object HTMLDivElement]切換爲已更改的名稱時,它給了我一個小問題 – user2349902

0

也許這工作我不測試它

function showmore(number,moreMessage,lessMessage) 
{ 
    var more = document.getElementById("learnmore_"+number); 
    if (more.style.display == "block") 
    { 
     more.style.display = "none"; 
     document.getElementById('showmore_'+number).innerHTML ='<a>'+moreMessage+'</a>'; 
    } 
    else 
    { 
     more.style.display = "block"; 
     document.getElementById('showmore_'+number).innerHTML ='<a>'+lessMessage+'</a>'; 
    } 
} 
+1

不配合不同的措辭像其他2錨回答 – naththedeveloper

0
function showmore(id, moreMessage, lessMessage) 
     { 
      var more = document.getElementById('more'+id); 
      if (more.style.display == "block") 
      { 
       more.style.display = "none"; 
       document.getElementById('showmore_'+id).innerHTML ='<a>'+moreMessage+'</a>'; 
      } 
      else 
      { 
       more.style.display = "block"; 
       document.getElementById('showmore_'+id,).innerHTML ='<a>'+lessMessage+'</a>'; 
      } 
     } 
相關問題