JavaScript 具有相同类的所有元素都不会显示无

标签 javascript css

我在 JavaScript 中有函数。我想用它来隐藏具有相同类的所有元素,但它不起作用。

function perfumes($id) {
document.getElementsByClassName("perfumeDetails").style.display = "none";
document.getElementsByClassName("perfumeDetails").style.top = "100%";
document.getElementById($id).style.display = "block";
document.getElementById($id).style.top = "50%";
}

检查元素错误:Uncaught TypeError: Cannot set property display of undefined 在 css 中,我有 .perfumeDetails{display:none;}

你能帮帮我吗?

最佳答案

您必须遍历它们并分别设置样式。

function perfumes($id) {
  var elems = document.getElementsByClassName('perfumeDetails');
  for (i = 0; i < elems.length; i++) {
    elems[i].style.display = 'none';
    elems[i].style.top = '100%';
  }
  document.getElementById($id).style.display = 'block';
  document.getElementById($id).style.top = '50%';
}

关于JavaScript 具有相同类的所有元素都不会显示无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214330/

相关文章:

javascript - 如何使用洛达什

javascript - CSS 应用于嵌套 li 问题

javascript - iframe 由于其中的链接而滚动

css - 将搜索框移动到右侧(博主)

javascript - 使用需要参数的非匿名函数的 setInterval 必须在匿名函数内。为什么?

javascript - 如何使用过滤的 props 渲染 ReactJS 组件?

css - 显示列宽不起作用

html - 网络安全字体是否需要购买许可证才能在商业网站上使用?

javascript - 我需要创建一个多选项选择页面,其中每个选择都会增加或减少产品的价格

javascript - PHP:如何根据另一个选择的选择更改选择的值