我有常见问题解答设置。点击问题后,我切换相应的答案(.sibling
)即可显示。这工作正常,另一个点击同一个问题,关闭兄弟姐妹。都好。
我想要做的是在点击另一个问题时使当前打开的兄弟切换关闭。 JavaScript新手,所以我的实验已经失败了。我应该如何修改我的JavaScript以使其成为可能。任何帮助将不胜感激。
$(function () {
$(".answer").hide();
$(".question").click(function () {
$(this).siblings(".answer").toggle(300);
});
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<ol>
<li>
<div class="question">Question 1</div>
<div class="answer">Answer to Question 1</div>
</li>
<li>
<div class="question">Question 2</div>
<div class="answer">Answer to Question 2</div>
</li>
<li>
<div class="question">Question 3</div>
<div class="answer">Answer to Question 3</div>
</li>
</ol>
</div>
&#13;
答案 0 :(得分:0)
您只需在点击时隐藏任何.answer
元素。
虽然,如果你只是隐藏所有答案,点击关闭当前答案将关闭它,然后重新打开它。
所以你需要首先确定哪个答案是正确的兄弟对象(在下面设置为兄弟变量),然后使用jQuery的.each()
方法将其与每个答案对象进行比较,并且只关闭那些不是目标兄弟的人。为此,您可以使用条件中的jQuery&#39; .is()
方法将兄弟对象与每个答案对象进行比较。
$(function () {
$(".answer").hide();
$(".question").click(function ()
{
var sibling = $(this).next('.answer');
$(".answer").each(function() {
var answer = $(this);
if (!answer.is(sibling)) {
$(this).hide(300);
}
})
$(this).siblings(".answer").toggle(300);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<ol>
<li>
<div class="question">Question 1</div>
<div class="answer">Answer to Question 1</div>
</li>
<li>
<div class="question">Question 2</div>
<div class="answer">Answer to Question 2</div>
</li>
<li>
<div class="question">Question 3</div>
<div class="answer">Answer to Question 3</div>
</li>
</ol>
</div>
&#13;
答案 1 :(得分:0)
有几种方法可以执行此操作,具体取决于您的常见问题解答的复杂程度。假设你只有一个级别的问题和答案,你可以简单地关闭所有答案,如下所示:
"LAST_DAY(TO_DATE('".$date."', 'DD-MM-YY'))"