jQuery在关闭之前打开的兄弟姐妹的同时显示一个开放的兄弟姐妹

时间:2017-11-26 03:01:03

标签: javascript jquery html

我有常见问题解答设置。点击问题后,我切换相应的答案(.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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

您只需在点击时隐藏任何.answer元素。

虽然,如果你只是隐藏所有答案,点击关闭当前答案将关闭它,然后重新打开它。

所以你需要首先确定哪个答案是正确的兄弟对象(在下面设置为兄弟变量),然后使用jQuery的.each()方法将其与每个答案对象进行比较,并且只关闭那些不是目标兄弟的人。为此,您可以使用条件中的jQuery&#39; .is()方法将兄弟对象与每个答案对象进行比较。

&#13;
&#13;
$(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;
&#13;
&#13;

答案 1 :(得分:0)

有几种方法可以执行此操作,具体取决于您的常见问题解答的复杂程度。假设你只有一个级别的问题和答案,你可以简单地关闭所有答案,如下所示:

"LAST_DAY(TO_DATE('".$date."', 'DD-MM-YY'))"