2014-03-04 141 views
2

下面是我的HTML代碼和兩個標籤之間切換顯示內容相應如何通過html將參數傳遞給函數並通過javascript訪問?

 <div class="tab" id="tab-1" onclick="switch_tab(1)"> 
      <a class="tab-text" href="">ABC</a> 
     </div> 
     <div class="tab" id="tab-2" onclick="switch_tab(2)"> 
      <a class="tab-text" href="">XYZ</a> 
     </div> 
     <div id="content"> 
      <div id="content-abc"> ... </div> 
      <div id="content-xyz"> ... </div> 
     </div> 

的JavaScript:

 function switch_tab(index) {  
     switch(index) { 
      case 1: 
       hide_content("content-xyz"); 
       show_content("content-abc"); 
       break; 
      case 2: 
       hide_content("content-abc"); 
       show_content("content-xyz"); 
       break; 
     } 
     } 

     function show_content(idname) { 
     document.getElementById(idname).style.display = "block"; 
     } 

     function hide_content(idname) { 
     document.getElementById(idname).style.display = "none"; 
     } 

但它不工作。幫幫我。

+0

什麼是調用'switch_tab()'? – zero298

+1

switch(index)not index.value – MIIB

+0

查看您的控制檯... index是一個整數,而不是具有value屬性的對象。 (因此爲什麼index.value)不起作用。 – brbcoding

回答

0

使用,我相信這個問題是<a>標籤與空白href值的ID的任何元素。將它們更改爲「#」(當然還有添加「內容」div)可以解決問題。如果它們不需要樣式,你也可以去掉錨點,因爲點擊事件是在包裝div上處理的。

http://jsfiddle.net/9p2TM/

+0

試試這個jsfiddle.net/Ge2F7 – Sum25

+0

這個小提琴在switch語句中使用'index.value'而不是簡單的'index'。此外,如果您希望函數在窗口範圍內可用,您必須從左側的「onLoad」切換到「無包裝 - 在」左側。改變這些事情會產生一個工作的例子。 –

+0

但是這在我的本地機器上不起作用。我應該做什麼改變?就像在jsfiddle上,「不需要換行」而不是「加載」 – Sum25

0

我沒有看到你已經在你的hide_content或show_content功能

+0

檢查此更新的代碼 – Sum25

0

應設置與JS DOM的onclick屬性。通過ID設置索引像這樣: var divs = document.getElementsByTagName('div');

for (var i = 0, il = divs.length; i < il; i++) { 
    divs[i].addEventListener("click", createHandler(divs[i], true)); 
} 

完整的示例: http://jsfiddle.net/JBL95/

+0

http://jsfiddle.net/Ge2F7/6/ –

相關問題