2014-03-04 128 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/ –

相关问题