使用javascript隐藏显示功能时出错

时间:2014-06-09 09:55:07

标签: javascript php

我正在使用JavaScript

开展隐藏节目功能

但是在onclick功能的控制台上出现错误

我不明白为什么会发生这种错误。

JAVASCRIPT CODE

<script type="text/javascript">

  function showtabs(id,id1) {
  alert(id);
  alert(id1);
   var e = document.getElementById(id);
   var flag = document.getElementById(id1);
   if(e.style.display == 'block')
   {
      e.style.display = 'none';
      flag.innerHTML = '+';
   }
   else
   {
      e.style.display = 'block';
      flag.innerHTML = '-';
   }  
}

PHP代码

<?php

$output.='<div class="span6"> 
  <div class="header" onclick="showtabs(my_section,icon);">
  <h1>My Section <span class="iconc" id="icon">+</span></h1>
  </div></div>';
$output.='<div id="my_section" style="display:none;">This is my section</div>';
echo $output;

?>

错误记录

TypeError: e is null
if(e.style.display == 'block')

5 个答案:

答案 0 :(得分:1)

试试这个:

<html>
<?php 
$output='';

$output.='<div class="span6"> 
  <div class="header" onclick="showtabs(\'my_section\',\'icon\');">
  <h1>My Section <span class="iconc" id="icon">+</span></h1>
  </div></div>';
$output.='<div id="my_section" style="display:none;">This is my section</div>';

?>
<head>
    <title>Sample Eula Agreement</title>
    <script type="text/javascript">

  function showtabs(id,id1) {
  alert(id);
  alert(id1);
   var e = document.getElementById(id);
   var flag = document.getElementById(id1);

   alert(e.style.display);
   if(e.style.display == 'block')
   {
      e.style.display = 'none';
      flag.innerHTML = '+';
   }
   else
   {
      e.style.display = 'block';
      flag.innerHTML = '-';
   }  
}

</script>
<style>

</style>

</head>
<body>
<?php


echo $output;

?>

</body>
</html>

您正在函数中传递字符串,但由于缺少引号,它正在将它们作为HTML元素读取。这就是为什么,e即将出现。

答案 1 :(得分:0)

看起来变量e为null。换句话说,dom中没有带有传递给函数的id的元素。

答案 2 :(得分:0)

你忘记了引号。试试这个:     的onclick =&#34; showtabs(&#39; MY_SECTION&#39;&#39;图标&#39;);&#34;

答案 3 :(得分:0)

我认为你没有完全选择id和id1

var e = document.getElementById('id');   //check here
var flag = document.getElementById('id1');

答案 4 :(得分:0)

只需更改$output变量onclick=showtabs("my_section","icon")的php代码,因为你传递了没有双quats的id,所以它的反应就像对象