RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1095805
Accepted
Сергей Плотницкий
Сергей Плотницкий
Asked:2020-03-17 19:52:39 +0000 UTC2020-03-17 19:52:39 +0000 UTC 2020-03-17 19:52:39 +0000 UTC

更改属性显示:无/单击时阻止

  • 772

我有一个 div,最初它是隐藏的

<div style="display: none">Какой-то текст</div>

我想使用js添加一个按钮,通过点击它,如果块的显示为none,它就会放置一个块,如果它已经是一个块,则相反,它会隐藏它。请告诉我该怎么做?

javascript
  • 5 5 个回答
  • 10 Views

5 个回答

  • Voted
  1. Best Answer
    Qwertiy
    2020-03-17T20:04:30Z2020-03-17T20:04:30Z

    style可以通过属性访问直接写入的样式style:

    document.querySelector('button').addEventListener('click', function (e) {
      var div = document.querySelector('div')
      div.style.display = div.style.display === 'none' ? 'block' : 'none'
    })
    <button>Click me</button>
    <div style="display: none">Какой-то текст</div>

    但特别是显示和隐藏,最好使用 property hidden,你只需要记住!important在样式中设置相应的属性 - 这将允许你切换元素的可见性,无论最初设置什么显示:

    document.querySelector('button').addEventListener('click', function (e) {
      var div = document.querySelector('div')
      div.hidden = !div.hidden
    })
    [hidden] {
      display: none !important;
    }
    <button>Click me</button>
    <div hidden style="display:flex">Какой-то текст</div>

    PS:当然,通过标签搜索元素只是一个例子。

    • 9
  2. Alex Sazonov
    2020-03-17T20:03:15Z2020-03-17T20:03:15Z

    let btn = document.querySelector('button');
    let el = document.querySelector('div');
    
    btn.addEventListener('click', () => {
      el.style.display === 'none' ? el.style.display = 'block' : el.style.display = 'none';
    });
    div {
      width: 100px;
      height: 100px;
      background-color: blue;
    }
    <div style="display: none">Какой-то текст</div>
    <button>Show</button>

    • 3
  3. Denis640Kb
    2020-03-17T20:01:11Z2020-03-17T20:01:11Z

    如果需要专门通过js创建一个按钮(同理,如果这个按钮已经存在,也可以简单的通过类似元素搜索找到该按钮):

    window.onload = function () { // При загрузке страницы
        let main = document.getElementsByClassName('main'); // Ищем родительский блок с классом main
        let button = document.createElement('button'); // Создаём кнопку
        button.innerText = "Название кнопки"; // Добавляем текст в кнопку
        main[0].appendChild(button); // Добавляем кнопку в родителя
        button.onclick = function () { // При нажатии на кнопку
            let div = main[0].children; // Ищем всех children элемента с классом main
            if (div[0].style.display == "none") { // Если div имеет параметр display none, то показываем, в противном случае скрываем.
                div[0].style.display = "block"; // Первый div в этом блоке отображаем (Так же можно добавить ему класс и искать по классу)
            } else {
                div[0].style.display = "none"; // скрываем.
            }
        }
    }
    <div class="main">
        <div style="display: none">Какой-то текст</div>
    </div>

    • 2
  4. Kazeev
    2020-03-17T20:08:03Z2020-03-17T20:08:03Z

    类似的东西

    function say() {
      alert('Навёл!');
      document.getElementById('elem').display = 'display ';
    }
    elem.mouseover = say;
    <input type="button" id="elem" onclick="alert('Было')" value="Нажми меня">

    • 0
  5. user316624
    2020-03-17T20:26:26Z2020-03-17T20:26:26Z

    let content = document.getElementById("content")
    let show = document.getElementById("showContent")
    
    show.addEventListener("click", () => {
      if (content.style.display === "block") {
        content.style.display = "none"
      } else {
        content.style.display = "block"
      }
    })
    <button id="showContent">Показать</button>
    <div id="content" style="display:none;">Text</div>

    • 0

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5