3 回答

TA貢獻1802條經驗 獲得超4個贊
function revealAnswersFunction(e) {
var all =document.getElementsByClassName('showme');
for(let i=0;i<all.length;i++){
all[i].style.display='none';
}
var div = e.nextSibling.nextElementSibling;
div.style.display = "inline-block";
}
<div class="showhim">
<button class="answerbtn" onclick="revealAnswersFunction(this)">Click/Tap To Reveal Answers:</button>
<div class="showme" style="display:none">1D, 2C</div>
</div>
<div class="showhim">
<button class="answerbtn" onclick="revealAnswersFunction(this)">Click/Tap To Reveal Answers:</button>
<div class="showme" style="display:none">1A, 2D</div>
</div>
<div class="showhim">
<button class="answerbtn" onclick="revealAnswersFunction(this)">Click/Tap To Reveal Answers:</button>
<div class="showme" style="display:none">1B, 2B</div>
</div>

TA貢獻1846條經驗 獲得超7個贊
一個簡單的解決方案是在函數中使用索引:
<div class="showhim">?
? ? ? ? <button class="answerbtn" onclick="revealAnswersFunction(0)">Click/Tap To Reveal Answers:</button>
? ? <div class="showme" style="display:none">1D, 2C</div>
</div>
? <div class="showhim">?
? ? ? ? <button class="answerbtn" onclick="revealAnswersFunction(1)">Click/Tap To Reveal Answers:</button>
? ? <div class="showme" style="display:none">1A, 2D</div>
</div>
? <div class="showhim">?
? ? ? ? <button class="answerbtn" onclick="revealAnswersFunction(2)">Click/Tap To Reveal Answers:</button>
? ? <div class="showme" style="display:none">1B, 2B</div>
</div>
function revealAnswersFunction(index) {
? if (answers[index].style.display === "none") {
? ? answers[index].style.display = "inline-block";
? } else {
? ? answers[index].style.display = "none";
? }
}
在 HTML 中,我向onclick="revealAnswersFunction(0)" . 然后在函數中使用該索引來獲取要顯示的答案。
為了將來參考,當您調用它時document.getElementsByClassName(),它會返回一個數組,因此您將需要要修改的數組項的索引。
一個簡單的解決方案是在函數中使用索引:
<div class="showhim">?
? ? ? ? <button class="answerbtn" onclick="revealAnswersFunction(0)">Click/Tap To Reveal Answers:</button>
? ? <div class="showme" style="display:none">1D, 2C</div>
</div>
? <div class="showhim">?
? ? ? ? <button class="answerbtn" onclick="revealAnswersFunction(1)">Click/Tap To Reveal Answers:</button>
? ? <div class="showme" style="display:none">1A, 2D</div>
</div>
? <div class="showhim">?
? ? ? ? <button class="answerbtn" onclick="revealAnswersFunction(2)">Click/Tap To Reveal Answers:</button>
? ? <div class="showme" style="display:none">1B, 2B</div>
</div>
function revealAnswersFunction(index) {
? if (answers[index].style.display === "none") {
? ? answers[index].style.display = "inline-block";
? } else {
? ? answers[index].style.display = "none";
? }
}
在 HTML 中,我向onclick="revealAnswersFunction(0)" . 然后在函數中使用該索引來獲取要顯示的答案。
為了將來參考,當您調用它時document.getElementsByClassName(),它會返回一個數組,因此您將需要要修改的數組項的索引。
一個更簡潔的解決方案是使用事件偵聽器將事件添加onclick
到 javascript 中的按鈕。

TA貢獻1770條經驗 獲得超3個贊
首先使用hide()方法隱藏所有答案,然后更改當前答案的顯示屬性。
function revealAnswersFunction(e) {
$('.showme').hide();
e.target.nextElementSibling.style.display = 'inline-block';
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="showhim">
<button class="answerbtn" onclick="revealAnswersFunction(event)">Click/Tap To Reveal Answers:</button>
<div class="showme" style="display:none">1D, 2C</div>
</div>
<div class="showhim">
<button class="answerbtn" onclick="revealAnswersFunction(event)">Click/Tap To Reveal Answers:</button>
<div class="showme" style="display:none">1A, 2D</div>
</div>
<div class="showhim">
<button class="answerbtn" onclick="revealAnswersFunction(event)">Click/Tap To Reveal Answers:</button>
<div class="showme" style="display:none">1B, 2B</div>
</div>
- 3 回答
- 0 關注
- 171 瀏覽
添加回答
舉報