【发布时间】:2018-04-06 11:04:06
【问题描述】:
您好,我编写了一些代码来使用 Javascript 显示和隐藏卡片中的段落。这在第一张卡上工作得很好,但在其他任何一张卡上都不起作用。这应该不是很难,但这是一个学校项目,有一些规则。我不能使用 div、class 或 id。它还必须是语义的,因此不允许使用复选框 hack 和 onclick 属性。
这是我的代码:
var section = document.querySelectorAll('section > summary > p');
var button = document.querySelectorAll('section > summary > button');
var show = function () {
section.classList.toggle('show')
}
button.addEventListener('click', show());
section summary p {
display: none;
}
section summary p.show {
display: block;
}
<body>
<main>
<!--first card-->
<section>
<!-- Top part-->
<span> <img> </span>
<!-- Bottom part-->
<summary>
<button>show paragraph</button>
<!--This button triggers the toggle-->
<h2></h2>
<h3></h3>
<p>I'm trying to show and hide this p <a href="#">lees meer</a></p>
<footer></footer>
</summary>
</section>
<!--second card-->
<section>
<!-- Top part-->
<span> <img> </span>
<!-- Bottom part-->
<summary>
<button>show paragraph</button>
<h2></h2>
<h3></h3>
<p>I'm trying to show and hide this p <a href="#">lees meer</a></p>
<footer></footer>
</summary>
</section>
</main>
</body>
这是我的笔的链接: https://codepen.io/SummerD/pen/MEMMNB
如果不使用类,我还没有看到任何解决此问题的方法。我希望你能帮助我!
【问题讨论】:
-
querySelector只会返回一项。使用querySelectorAll。 -
我刚试过这个,现在它们都不起作用@evolutionxbox
-
你在哪里使用它?你知道怎么用吗?
-
不,我是 javascript 新手。我已将 'querySelector' 替换为 'querySelectorAll'
-
好的。没问题。首先,您要选择页面上的所有元素,如果您只想显示与单击的按钮在视觉上相关的元素,这将是一个问题。其次,您需要循环遍历
querySelectorAll结果css-tricks.com/snippets/javascript/…。
标签: javascript html css toggle semantics