0

我有几个 div 使用从查询中获得的 id,然后在函数中使用这个 id 来显示/隐藏 div onclick。我的问题是使用下面的代码,div 似乎打开时“显示”更改为“隐藏”(单击“隐藏”不会更改为“显示”),但 div 的内容未显示。

javascript:

function toggle(id) {
   var ele = document.getElementById(id);
   var text = document.getElementById(id);
             if(ele.style.display == "block") {
             ele.style.display = "none";
             text.innerHTML = "show";
 }
 else {
    ele.style.display = "block";
    text.innerHTML = "hide";
 } 
 } 

php:

echo "Info: <a id='$id' href='javascript:toggle(\"$id\");'>show</a>";
      echo"<div id='$id' style='display: none'></div>";
4

2 回答 2

2

您两次使用相同的 ID 这是错误的,将 _toggle 添加到您的标签的 ID 可以解决此问题。

将您的代码更改为此,它可能会起作用:

Javascript:

function toggle(id) {
    var ele = document.getElementById(id);
    var text = document.getElementById(id + '_toggle');
    if(ele.style.display == 'block'){
        ele.style.display = 'none';
        text.innerHTML = 'show';
    }else{
        ele.style.display = 'block';
        text.innerHTML = 'hide';
    }
}

php:

echo 'Info: <a id="'.$id.'_toggle" href="javascript:toggle(\''.$id.'\');">show</a>';
echo '<div id="'.$id.'" style="display: none;"></div>';
于 2012-09-17T06:30:11.290 回答
0

您对 href 和 div 使用相同的 id

php:

  echo "Info: <a id='$id' href='javascript:toggle(\"$id\");'>show</a>";
  echo"<div id='$id' style='display: none'></div>";

更改 A 的 $id 。

于 2012-09-17T06:28:42.323 回答