gpt4 book ai didi

javascript - 无论如何强制所有样式为 "block"或 "none"而不通过循环?

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

好的,看这段代码

<p>This is question 1.</p>

<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" width="42" onclick="toggleAnswer(1)">

<p id="1">This answer1.</p>

<p>This is question 2.</p>

<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" width="42" onclick="toggleAnswer(2)">

<p id="2">This answer2.</p>

<script type="text/javascript">

function toggleAnswer(no){
if (document.getElementById(no).style.display=="none")
{
document.getElementById(no).style.display="block";
}
else
{
document.getElementById(no).style.display="none";
}
}

</script>

这段代码意味着有很多问题,如果我们点击特定问题旁边的图片,相应的答案就会出现。

现在,我想制作一个按钮“显示所有”和“关闭所有”。当人们点击“显示全部”时,它会显示所有答案,当点击“关闭所有”时,它会关闭所有答案。

我的问题是

是否可以在不经过循环的情况下强制页面内的所有元素具有“ block ”或“无”样式?

最佳答案

您可以在父元素上使用 CSS 类: https://jsfiddle.net/ckyoxobp/

HTML

<div id="questions">
<button id="toggle">Show all answers</button>
<p>This is question 1.</p>
<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" width="42">
<p id="1" class="answer">This answer1.</p>
<p>This is question 2.</p>
<img src="http://cliparts.co/cliparts/qTB/5yd/qTB5ydpzc.gif" alt="show answer" height="42" width="42">
<p id="2" class="answer">This answer2.</p>
</div>

JS

var questions = document.getElementById('questions');
var toggle = document.getElementById('toggle');

function toggleAll() {
if (questions.classList.contains('show-all')) {
questions.classList.remove('show-all');
toggle.innerText = 'Show all answers';
} else {
questions.classList.add('show-all');
toggle.innerText = 'Hide all answers';
}
}

toggle.onclick = toggleAll;

CSS

#questions .answer {
display: none;
}

#questions.show-all .answer {
display: block;
}

更新

我应该更明确地说明浏览器兼容性;我只是想展示一个在父元素上使用类的示例。 Element.classList某些浏览器的某些版本不支持,尤其是 IE9 及更早版本,IE10 对它的支持有限。然而,Element.className几乎完全覆盖。

修改元素的类超出了这个问题的范围,但是this answer to a different question会给你一个好的开始。

关于javascript - 无论如何强制所有样式为 "block"或 "none"而不通过循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122025/

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