RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 805923
Accepted
Vaagn Akopyan
Vaagn Akopyan
Asked:2020-03-28 18:39:53 +0000 UTC2020-03-28 18:39:53 +0000 UTC 2020-03-28 18:39:53 +0000 UTC

如何在 JS 中将 onclick 设置为几个按钮标签?

  • 772

你好!

意思很简单,就是当你点击某个按钮时,需要打开一个带有某个文本的div(每个按钮的文本都不一样)。问题是实施起来有多容易。是否有必要为每个按钮分配一个单独的 id 并为每个按钮创建一个单独的函数(它用所需的文本绘制一个 div)还是有更人性化的方法?

p / s 有人建议通过课堂来做,但后来我不明白它是如何工作的,因为你不能参考课堂上的特定文本。

<html>
        <head>
                <script type="text/javascript" src="test.js"></script>
                <title>ariadna wiki</title>
                <link rel="stylesheet" type="text/css" href="style.css">
        </head>
            <body>

                <div>
                    <ul>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    <button> </button>
                    </ul> 
                </div>

           </body>
        </html>
javascript
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    yolosora
    2020-03-28T19:14:58Z2020-03-28T19:14:58Z

    更新:如果您已经有带有文本的 div,您可以将它们绑定到按钮,例如,通过 name 属性

    var elems = document.getElementsByTagName('button');
    for (var i = 0; i < elems.length; i++) elems[i].addEventListener("click", handler);
    var current;
    
    function handler(event) {
      if (current) current.style.display = 'none';
      var name = event.target.getAttribute('name');
      current = document.querySelector(`div[name="${name}"]`);
      current.style.display = 'block';
    };
    div {
      display: none
    }
    
    .menu {
      display: block
    }
    <div class='menu'>
      <ul>
        <button name="Первый">1</button>
        <button name="Второй">2</button>
        <button name="Третий">3</button>
        <button name="Четвертый">4</button>
        <button name="Пятый">5</button>
        <button name="Шестой">6</button>
        <button name="Седьмой">7</button>
        <button name="Восьмой">8</button>
        <button name="Девятый">9</button>
        <button name="Десятый">10</button>
      </ul>
    </div>
    <div name="Первый">1</div>
    <div name="Второй">2</div>
    <div name="Третий">3</div>
    <div name="Четвертый">4</div>
    <div name="Пятый">5</div>
    <div name="Шестой">6</div>
    <div name="Седьмой">7</div>
    <div name="Восьмой">8</div>
    <div name="Девятый">9</div>
    <div name="Десятый">10</div>

    或者,例如,您可以在必要时在属性中存储和替换显示的文本。

    var elems = document.getElementsByTagName('button');
    for (var i = 0; i < elems.length; i++) elems[i].addEventListener("click", handler);
    
    function handler(event) {
      document.getElementById('container').innerText = event.target.getAttribute('text');
    };
    <div>
      <ul>
        <button text="Первый">1</button>
        <button text="Второй">2</button>
        <button text="Третий">3</button>
        <button text="Четвертый">4</button>
        <button text="Пятый">5</button>
        <button text="Шестой">6</button>
        <button text="Седьмой">7</button>
        <button text="Восьмой">8</button>
        <button text="Девятый">9</button>
        <button text="Десятый">10</button>
      </ul>
    </div>
    <div id="container">
      Пустой
    </div>

    • 2
  2. stckvrw
    2020-03-28T18:59:18Z2020-03-28T18:59:18Z

    如果容器内的按钮与其容器内的 div 顺序相同,则可以通过按钮索引打开 div:

    var buttons = document.querySelectorAll('ul button');
    for(var i = 0; i < buttons.length; i++) {
    	(function(index){
    		buttons[i].addEventListener('click', function(){
    			var divIndex = index*1+1*1;
    			document.querySelector('.divs div:nth-of-type('+divIndex+')').style.background = 'red'; // здесь прикрутите открытие блока
    		});
    	})(i);
    }
    <ul>
    	<button>Кнопка 1</button>
    	<button>Кнопка 2</button>
    </ul>
    <div class="divs">
    	<div>Текст блока 1</div>
    	<div>Текст блока 2</div>
    </div>

    .divs带有 div 的容器在哪里(您可以将其更改为您自己的类)

    • 0

相关问题

Sidebar

Stats

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

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +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