【发布时间】:2017-09-14 14:47:58
【问题描述】:
在我的 HTML 中,我有问题和解决方案。我想用不同的按钮隐藏和显示每个问题的解决方案。
这是我的问题:我正在为每个解决方案按钮编写一个新函数。例如,如果我有 100 个问题,那么我需要编写 100 个不同的 Javascript 函数。
有没有更好的方法来做到这一点。我可以为每个解决方案按钮只写一个函数吗?
非常感谢您。
这是我的html:
<li>Question 1. What is x?</li>
<button class="btn btn-outline-success"
onclick="myFunction()">Solution</button>
<div id="Solution">
<div class="highlight">
<pre>
X is apple
</pre>
<li>Question 2. What is y?</li>
<button class="btn btn-outline-success"
onclick="myFunction1()">Solution</button>
<div id="Solution1">
<div class="highlight">
<pre>
Y is orange
</pre>
这是我的 Javascript:
document.getElementById( 'Solution' ).style.display = 'none';
function myFunction() {
var x = document.getElementById('Solution');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
document.getElementById( 'Solution1' ).style.display = 'none';
function myFunction1() {
var x = document.getElementById('Solution1');
if (x.style.display === 'none') {
x.style.display = 'block';
} else {
x.style.display = 'none';
}
}
注意:我看到很多关于隐藏和显示的问题,但我无法解决我的问题。如果这是一个重复的问题,请警告我,我可以删除。
【问题讨论】:
-
这是“vanilla JavaScript”中的一个练习吗? e.您是否明确要避免使用 jquery?如果是这样,它可以完成,否则,使用 jquery 的解决方案几乎是微不足道的。
-
这里没有理由提倡 jQuery。它与问题或解决方案完全无关。
-
我同意,如果 OP 想要解决一个难题,那么没有 jquery 的答案是正确的。但是,如果他想在真实的单词上下文中实现某些目标,那么对 jquery 的提示可能会有所帮助。我不会强迫任何人。但是
$('.Solution').hide() $('button').on('click',function(){$(this).next().show()})绝对比这里的所有其他解决方案都要短,请参阅下面的工作演示。 -
再次您好,非常感谢您的建议。我想分享我对这个话题的看法。我是一个初学者,正在尝试制作一些基本的页面来练习。我猜这个平台上还有其他一些初学者。所以对我们来说有时候前辈的一些回答看起来很复杂。我知道这里不是一个教育平台,但我们需要更多解释性答案,就像 @Scott Marcus 在这个问题中所做的那样。
-
因此,例如对于这个问题,我的主要问题是,我们的一些资深朋友说我可以使用 jquary(顺便说一句,我真的很感谢)并且他们编写了代码,但老实说我什至不知道在哪里编写该代码。因此,对于像我这样的初学者,如果您详细解释每种解决方案的优势是什么,或者我们如何练习它会非常有用,或者如果可能的话,至少有一位资深人士像@Scott Marcus 那样做,对我们来说非常有用.再次非常感谢您。
标签: javascript html show-hide