gpt4 book ai didi

Javascript 在不使用 class 或 id 的情况下切换多个按钮

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:07 24 4
gpt4 key购买 nike

您好,我使用 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

我还没有看到不使用类就解决这个问题的方法。我希望你能帮助我!

最佳答案

鉴于这项任务的性质,以及缺乏使用干净的 HTML 和 CSS 的类,我在扩展 JavaScript 方面有点过头了:

// Collect all buttons, and store them in an Array using querySelectorAll
var buttons = document.querySelectorAll('button')

// Initiate a for loop that 'loops' through all options in the buttons array.
for (var i = 0; i < buttons.length; i++) {
// For every instance of buttons in the Array, apply an event listener (click).
buttons[i].addEventListener('click', function(e) {
// Grab the target of the click event, select their parent and access the 7th child (the <p> tag in question). Access the classList and toggle the 'show' class.
e.target.parentNode.childNodes[7].classList.toggle('show');
});
};

通常,您不会进行这种类型的编码,因为它不可维护、难以阅读并且依赖于始终可以更改的一致 DOM。不过,它会在您的示例中正常工作。

关于Javascript 在不使用 class 或 id 的情况下切换多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46931027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com