首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换显示/隐藏元素,其中刷新的默认值为隐藏

切换显示/隐藏元素,其中刷新的默认值为隐藏
EN

Stack Overflow用户
提问于 2020-06-24 07:19:57
回答 3查看 365关注 0票数 1

我的脚本成功地在表中显示和隐藏了一列,默认情况下,我希望它被隐藏,脚本显示它。

谢谢你的帮助。

代码语言:javascript
复制
<a onclick="myFunction()" style="float:right;">Hide/Show</a>

<table>
<tr>
    <th>TO Date</th>
    <th id="myDIV">LDG Date</th>
    <th>TO Time</th>
    <th>LDG Time</th>
    <th>Dep. air.</th>
    <th>Arr. air.</th>
    <th></th>
</tr>
{% for l in logbook %}
<tr>
    <td>{{ l.TO_Date }}</td>
    <td id="myDIV">{{ l.LDG_Date }}</td>
    <td>{{ l.TO_time }}</td>
    <td>{{ l.LDG_time }}</td>
    <td>{{ l.dep_airport }}</td>
    <td>{{ l.arr_airport }}</td>
    <td ><a style="color:red;" href="{{ url_for('logbookdelete',id_del=l.id ) }}">Delete</a></td>
</tr>
{% endfor %}
</table>

<script>
function myFunction() {
  var x = document.getElementById("myDIV");
  if (x.style.display === "block") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}
</script>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-24 08:12:18

只需在单元格中添加style="display: none;“:

代码语言:javascript
复制
<th class="myDIV" style="display: none;">

注意,我已经将id更改为类,因为在同一页上不应该有两个相等的id。

但我会这样做:

代码语言:javascript
复制
<style>
  .ldg-date-hidden .myDIV { display: none; }
</style>

<a onclick="myFunction()" style="float:right;">Hide/Show</a>

<table id="myTable" class="ldg-date-hidden">
<tr>
    <th>TO Date</th>
    <th class="myDIV">LDG Date</th>
    <th>TO Time</th>
    <th>LDG Time</th>
    <th>Dep. air.</th>
    <th>Arr. air.</th>
    <th></th>
</tr>
{% for l in logbook %}
<tr>
    <td>{{ l.TO_Date }}</td>
    <td class="myDIV">{{ l.LDG_Date }}</td>
    <td>{{ l.TO_time }}</td>
    <td>{{ l.LDG_time }}</td>
    <td>{{ l.dep_airport }}</td>
    <td>{{ l.arr_airport }}</td>
    <td ><a style="color:red;" href="{{ url_for('logbookdelete',id_del=l.id ) }}">Delete</a></td>
</tr>
{% endfor %}
</table>

<script>
  function myFunction() {
    document.getElementById("myTable").classList.toggle("ldg-date-hidden");  
  }
</script>
票数 2
EN

Stack Overflow用户

发布于 2020-06-24 07:30:14

您可以通过在标记上放置内联样式(display:none)来强制初始状态,这不是最好的方法,但应该有效。

我建议您将css文件上的样式与html文件分开,以避免层次结构问题。

代码语言:javascript
复制
const x = document.getElementById('myDIV');

function toggleVisibility() {
  if (x.classList.contains('hidden')) {
    x.classList.remove('hidden');
  } else {
    x.classList.add('hidden');
  }
}

CSS文件

代码语言:javascript
复制
.hidden: { 
    display: none; 
}
票数 0
EN

Stack Overflow用户

发布于 2020-06-24 07:57:13

可以通过设置display:none来隐藏列,然后可以执行以下操作:

代码语言:javascript
复制
function myFunction() {
  var x = document.getElementsByClassName("myDIV");
  for(var i=0;i<x.length;i++)
  {
      if (x[i].style.display === "block") {
        x[i].style.display = "block";
      } else { 
        x[i].style.display = "none";
      }
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62549757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档