javascript - 如何发送不同的 ID 作为 JS 函数的参数?

标签 javascript html function

我正在尝试将 id 发送到函数,但我不知道该怎么做。我有一个这样的功能

    function showHide(item) {
        if (document.getElementById('item.id').style.display=='none') {
            document.getElementBydId('item.id').style.display = '';
        }
        else {
            document.getElementById('item.id').style.display = 'none';
        }
    }

我的 HTML 像这样

    <div onclick="showHide(one);">
        <img src="images/1.png">
    </div>
    <div id="one" style="display:none">
        <h1>X List</h1>
        <ul>
            <li>Elmt 1</li>
            <li>Elmt 2</li>
            <li>Elmt 3</li>
            <li>Elmt 4</li>
        </ul>
    </div>

但是,我有更多具有不同 id 的 div,所以我不想为每个 id 创建更多函数。如何将“一、二、三……”id 发送到另一个 onclick div?

最佳答案

html:

<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div class="visibility" id="one">
        <img src="images/1.png">
  </div>
  <div id="match-one">
        <h1>X List</h1>
        <ul>
            <li>Elmt 1</li>
            <li>Elmt 2</li>
            <li>Elmt 3</li>
            <li>Elmt 4</li>
        </ul>
    </div>
</body>
</html>

JavaScript:

(function () {
     var hasClass = function (ele, cls) {
        return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
     },
     removeClass = function (ele, cls) {
        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
        ele.className = ele.className.replace(reg, ' ');
     },
     showHide = function (item) {
      var element = document.getElementById('match-' + this.id);
          if(hasClass(element, 'hide')) {
              removeClass(element, 'hide');
          } else {
              element.className = element.className + 'hide';
          }
      },
      cell = document.querySelectorAll('.visibility'),
      i;
    for(i = cell.length - 1; i >= 0; i--) {
        cell[i].addEventListener('click', showHide, false);
    }
}());

CSS:

.hide {
  display: none;
}

我选择这个解决方案是因为它具有很强的可扩展性并且不会覆盖 css

关于javascript - 如何发送不同的 ID 作为 JS 函数的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26950412/

相关文章:

javascript - 描述符可以更改 Typescript 中的类型吗?

javascript - 在游戏的 Javascript 代码中使用的 PHP 变量

javascript - 对于 Web Audio 节点,.connect() 是做什么的?

Javascript - 将数字变量拆分为函数

javascript - 当用户完成输入时验证用户输入

javascript - 使用模块模式时如何创建对象的新实例?

html - &lt;header&gt; 和 &lt;footer&gt; 实际上是做什么的?

javascript - Webgl 未捕获引用错误 : createShaderFromScriptElement is not defined

swift - 我的 Segue 或按钮无法快速运行

function - VHDL在Generate中使用库函数