0
function setVisibility('sub1'){
   var element = document.getElementById('bt1');
   if( 'none' == element.style.display ){
       element.style.display = 'block';

   }else{
       element.style.display = 'none';

   }
   return false;
}

好的,这就是我的 javascript.. 我有几个按钮(sub1、sub2、sub3 和 sub4)都显示不同的 div(bt1、bt2、bt3 和 bt4)

<input id='bt1' type="image" src='button.png' alt="Submit" onclick="setVisibility('sub1');";>

那是按钮本身编码到我的 html 中,然后它显示的 div 是一个简单的 div:

<div style="display: none;" id='sub1'>Text Goes Here</div>

但是当我点击按钮时没有任何反应,我对自己做错了什么感到困惑,所以如果有人愿意指出我的错误。谢谢

编辑:删除额外的 Html 错误;没用,将 ' 从 sub 中移开会使第 4 个按钮出现和消失

4

3 回答 3

1

这里的问题是您的函数中有一个无效的变量定义。它应该定义一个变量,而不是一个字符串,您可以使用该变量来定位有问题的元素。

function setVisibility(subId){
 var element = document.getElementById(subId);
 ...

正如其他人在您的帖子评论中指出的那样,您的 HTML 中也存在语法错误,即:

<input id='bt1' type="image" src='button.png' alt="Submit" onclick="setVisibility('sub1');";>

;在 .之前的末尾有一个额外的>。为了合规,像这样的自闭合元素在技术上也应该以/. 例如:

<input id='bt1' type="image" src='button.png' alt="Submit" onclick="setVisibility('sub1');" />
于 2013-11-11T16:51:27.340 回答
0

您必须声明没有撇号的函数参数;像这样:

function setVisibility(sub){
  var element = document.getElementById(sub);
于 2013-11-11T16:53:18.687 回答
0
function setVisibility(id){ 
   var element = document.getElementById(id);
     if( 'none' == element.style.display ){ 
         element.style.display = 'block';
     }else{ 
          element.style.display = 'none';  
     } return false;
 }

尝试这个

于 2013-11-11T16:54:05.337 回答