【问题标题】:select next element only仅选择下一个元素
【发布时间】:2017-09-09 00:18:35
【问题描述】:

在我的代码中,我有三个复选框。在三个中,第一个没有类,其余的有hidecheck。现在我想在选中复选框时添加 div 类 hidecheck 并从下一个类中删除 hidecheck '请帮我这样做。

我已经应用了 jQuery 代码,但它只添加了 hidecheck 类并删除了所有下一个 hidecheck 类。

我想要单击第一个复选框时,它将仅显示第二个复选框,然后在第二个复选框上检查时,它将添加 hideclass并从最后一个

中删除

$('.fa-thumbs-o-up').on('click', function() {
  $('.imgtext').addClass('hidechktext');
  $('.imgtext').siblings().next('.imgtext').removeClass('hidechktext');
});
.hidechktext {
  opacity: 0;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="imgtext">
  <a class="nextimgs">
    <input class="hidecheck" type="checkbox" name="imganimate" value="img1" id="chkimg1">
    <label for="chkimg1">
      <p> 
        <i class="fa fa-thumbs-o-up fa-3x"></i> <br/>
        LikeA
     </p> 
    </label>
  </a>
</div>
<div class="imgtext hidechktext">
  <a class="nextimgs">
    <input class="hidecheck" type="checkbox" name="imganimate" value="img2" id="chkimg1">
    <label for="chkimg1">
     <p> 
        <i class="fa fa-thumbs-o-up fa-3x"></i> <br/>
        LikeB
      </p> 
    </label>
  </a>
</div>
<div class="imgtext hidechktext">
  <a class="nextimgs">
    <input class="hidecheck" type="checkbox" name="imganimate" value="img3" id="chkimg1">
    <label for="chkimg1">
      <p> 
        <i class="fa fa-thumbs-o-up fa-3x"></i> <br/>
        LikeC
      </p> 
    </label>
  </a>
</div>

【问题讨论】:

  • 哪里像A?和B一样?
  • 在此处发布您的 html
  • 我已经添加了
  • @Tanmay 仅供参考,由于您的问题的格式,您的 HTML 不可见 - 因此上面的 cmets 和反对票。我建议您在以后发布问题之前花点时间确保您的问题是可读的。

标签: jquery html css checkbox


【解决方案1】:

您可以执行以下操作:

  • 获取第一个和最后一个 $('.imgtext') 元素。
  • 检查您是否在最后一个 $('.imgtext') 元素中,如果是,则显示第一个 $('.imgtext')。
  • 否则在点击时隐藏当前并显示下一个$('.imgtext')。

$('.fa-thumbs-o-up').on('click', function() {
  var LikeC = $('.imgtext').last();
  var LikeA = $('.imgtext').first();
  if (!LikeC.hasClass("hidechktext")) {
    LikeA.removeClass('hidechktext');
  }
  $(this).siblings().parents('.imgtext').next().removeClass('hidechktext');
  $(this).parents('.imgtext').addClass('hidechktext');
});
.hidechktext {
  opacity: 0;
  display: none;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="imgtext">
  <a class="nextimgs">
    <input class="hidecheck" type="checkbox" name="imganimate" value="img1">
    <label for="chkimg1">
      <p> 
        <i class="fa fa-thumbs-o-up fa-3x"></i> <br/>
        LikeA
     </p> 
    </label>
  </a>
</div>
<div class="imgtext hidechktext">
  <a class="nextimgs">
    <input class="hidecheck" type="checkbox" name="imganimate" value="img2">
    <label for="chkimg1">
     <p> 
        <i class="fa fa-thumbs-o-up fa-3x"></i> <br/>
        LikeB
      </p> 
    </label>
  </a>
</div>
<div class="imgtext hidechktext">
  <a class="nextimgs">
    <input class="hidecheck" type="checkbox" name="imganimate" value="img3">
    <label for="chkimg1">
      <p> 
        <i class="fa fa-thumbs-o-up fa-3x"></i> <br/>
        LikeC
      </p> 
    </label>
  </a>
</div>

【讨论】:

  • 谢谢这是我一直在寻找的代码。但是有一个错误,你点击它,你会看到 A 标签有时带有一个自动勾选。请让我知道解决方案
  • @Tanmay,上面编辑过,这是由输入 id (chkimg1) 引起的,如果你想重复它们,你可以删除它们(我做了)或者将它们切换到一个类。 ID 应该是唯一的。
【解决方案2】:

将您的 jquery 更改为只选择当前的 .imgtext div 并在其上添加类并从其他兄弟姐妹中删除 .imgtext div

$('.fa-thumbs-o-up').on('click',function(){
    vat currentParentElement=$(this).parents('.imgtext:first');
    currentParentElement.addClass('hidechktext');
    currentParentElement.siblings('.imgtext').removeClass('hidechktext');
    $(this).parents('input:first').attr('checked', false);
});

【讨论】:

  • 它可以工作,但第一个 div 即复选框 A 保持不变。点击后如何删除选项A
  • @Tanmay 你想取消选中复选框吗,我在答案中包含了该代码
  • look 复选框在 div 中。我希望当我单击第一个复选框时,它应该添加 'hidechktext' 以便该选定的 div 应该消失并从第二个 div 中删除该 'hidecktext' 然后当它被选中时,它会将“hidechktext”添加到第三个 div 并从第二个 div 中删除该类
  • @Tanmay 嘿,答案是根据你在问题中的要求,你明白了,所以你应该多尝试一下
猜你喜欢
  • 1970-01-01
  • 2010-12-16
  • 2010-12-04
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多