javascript - 通过一个 onclick 函数隐藏多个 div

标签 javascript onclick

我正在寻找解决此问题的 Javascript 解决方案。我有以下 HTML:

<div id = "container">
  <div id = "data">
    <div>
      <h3> Address</h3>
      <b>Expand...</b>
      <div id="content">ul. Pomorska</div>
    </div>
    <div>
      <h3> Telefon </h3> <b>Expand...</b>
      <div id="content">26565352</div>
    </div>
    <div>
      <h3>Email</h3>
      <b>Expand...</b>
      <div id="content">asdasdag@aga.com</div>
    </div>
  </div>
</div>

我想在 onclick Expand 时隐藏内容 div。到目前为止,我已经创建了一个隐藏内容 div 并尝试将事件处理程序分配给节点的函数。

function hideinfo() {
  var node = document.getElementById("data");
  var contactdata = node.getElementsByTagName("div");
  for(var i=0; i<contactdata.length;i++) {
    if(contactdata[i].id == "content") {
      alert(contactdata[i].previousSibling.innerHTML);
      contactdata[i].previousSibling.addEventListener('click',ShowHide,false);
      contactdata[i].style.display="none";
    }
  }
}

问题是警报显示未定义。为什么看不到节点?在 Javascript 中是否有更好的方法来做到这一点?

最佳答案

因为 previousSibling 很可能是 div 元素之前的文本节点。您可能想使用 previousElementSibling相反:)

在当今的大多数浏览器中,querySelectorAll ,它允许您使用 CSS 选择器来查找元素,也是一个很好的替代方案 (IE8+)

关于javascript - 通过一个 onclick 函数隐藏多个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13439382/

相关文章:

javascript - Node.js 回调函数

javascript - Phantomjs javascript继承误区

javascript - 优化聊天应用中的 Firestore 实时更新

JavaScript - 如何在函数内部调用函数?

java - 如何通过 onclick 在 android 中的 ImageView 上对适配器 ListView 中的整数数组使用 setVisibility

c# - 如果 ImageButton 是在代码后面创建的,如何使用 ImageButton.OnClick

javascript - 确定 dropzone.js 中所有文件何时上传成功

Android 小部件 onClick 不工作

Javascript onclick仅适用于chrome,不适用于firefox或IE

javascript - JavaScript onclick : this. id 中的参数传递与其他属性