Jquery,隐藏和关闭一个元素

时间:2017-12-29 17:33:10

标签: javascript jquery

我正在开发一个网络应用,我遇到了问题。问题是,我有一个span元素,并且在span元素内部还有两个span元素。简单地说,父span元素的两个孩子。其中一个子元素显示在父元素中,当有人点击显示的子元素时,它将获得该子元素的索引值并将其隐藏,并将显示下一个兄弟元素。我已经编写了一些代码,但它只需单击即可完成,当我单击显示的下一个兄弟时,第一个兄弟姐妹永远不会显示。以下是我的代码:

HTML

<span class="ajlsst-wrap">

  <span class="ajls-save-sec ajls-save">
    <i class="fa fa-bookmark-o"></i>
    <span class="ajls-labe">Save</span>
  </span>

  <span class="ajls-save-sec ajls-saved">
    <i class="fa fa-check"></i>
    <span class="ajls-labe">Saved</span>
  </span>

</span>

$(".ajlsst-wrap").click(function(){

    var _index = $(this).find(".ajls-save-sec").index();

    console.log(_index);



   if(_index == 0){
        $(this).find(".ajls-save").hide();
        $(this).find(".ajls-saved").show();
    }
    else{
        $(this).find(".ajls-saved").hide();
        $(this).find(".ajls-save").show();
    }
    
   
})

  

我也有一个问题,就是第一个孩子的索引总是被检测到的不是第二个孩子的点击,我不知道为什么。

2 个答案:

答案 0 :(得分:1)

您可以直接使用$(".ajls-save-sec").click代替$(".ajlsst-wrap").click

您可以使用简单的下一个代码

$(".ajls-save-sec").click(function(){  // no need for $(".ajlsst-wrap")
    $(this).parent().find(".ajls-save-sec").show();  // show all spans
    $(this).hide();    // hide the clicked one
})
.ajls-saved{
  display : none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="ajlsst-wrap">

  <span class="ajls-save-sec ajls-save">
    <i class="fa fa-bookmark-o"></i>
    <span class="ajls-labe">Save</span>
  </span>

  <span class="ajls-save-sec ajls-saved">
    <i class="fa fa-check"></i>
    <span class="ajls-labe">Saved</span>
  </span>

</span>
<span class="ajlsst-wrap">

  <span class="ajls-save-sec ajls-save">
    <i class="fa fa-bookmark-o"></i>
    <span class="ajls-labe">Save</span>
  </span>

  <span class="ajls-save-sec ajls-saved">
    <i class="fa fa-check"></i>
    <span class="ajls-labe">Saved</span>
  </span>

</span>
<span class="ajlsst-wrap">

  <span class="ajls-save-sec ajls-save">
    <i class="fa fa-bookmark-o"></i>
    <span class="ajls-labe">Save</span>
  </span>

  <span class="ajls-save-sec ajls-saved">
    <i class="fa fa-check"></i>
    <span class="ajls-labe">Saved</span>
  </span>

</span>

答案 1 :(得分:1)

这样做

&#13;
&#13;
randomFromStable + 0.05 * randomFromDifference
&#13;
$(".ajls-save-sec").click(function(){
  
  $(this).hide().siblings().show()    
   
})
&#13;
&#13;
&#13;

希望你能得到这个概念。