-2

I am trying to hide two rows, <tr><td>line 1</td></tr> and <tr><td>line 2</td></tr>, by wrapping them in a div with display:none set, but these rows are not hidden. Why?

<script type="text/javascript">
  function toggle() {
    var ele = document.getElementById("toggleText");
    var text = document.getElementById("displayText");
    if(ele.style.display == "block") {
      ele.style.display = "none";
      text.innerHTML = "Show";
    } else {
      ele.style.display = "block";
      text.innerHTML = "Hide";
    }
  } 
</script>

<table>
  <tr>
    <td>
      <a id="displayText" href="javascript:toggle();">Show</a>
    </td>
  </tr>

  <div id="toggleText" style="display: none;">
    <tr><td>line 1</td></tr>
    <tr><td>line 2</td></tr>
  </div>
</table>
4

2 回答 2

3

您的 HTML 标记无效,您不能将 div 作为表格中的子元素!

于 2013-02-04T15:09:39.680 回答
1

当您想将 div 放在表格中时,它需要位于表格单元格中,即在 td 中。请注意,我按类名选择两个 div,因为 id 是唯一的。

<script language="javascript"> 
 function toggle() {
    var ele = document.getElementsByClassName("toggleText");
    var text = document.getElementById("displayText");
    if(ele[0].style.display == "block") {
        ele[0].style.display = "none";
        ele[1].style.display = "none";
        text.innerHTML = "Show";
    }
    else {
        ele[0].style.display = "block";
        ele[1].style.display = "block";
        text.innerHTML = "Hide";
    }
} 
</script>
<table>

    <tr><td>
    <a id="displayText" href="javascript:toggle();">Show</a>
    </td></tr>

    <tr><td><div class="toggleText">line 1</div></td></tr>
    <tr><td><div class="toggleText">line 2</div></td></tr>

</table>
于 2013-02-04T15:13:49.410 回答