【问题标题】:removeClass on sibling div not working兄弟 div 上的 removeClass 不起作用
【发布时间】:2013-10-04 17:26:24
【问题描述】:

这是 HTML 的结构:

<div class="agShowBox">
     <div class="agEmpty"> </div>
     <div class="agShowImgBox">
           <div class="centerImg">
           <div class="centerImg">
           <div class="centerImg">
           <div class="centerImg">
           <div class="centerImg">
           <div class="centerImg hideThis">
           <div class="clearit"></div>
     </div>
     <div class="agRightArrow">
          <img alt="next" src="images/arrow_right.png">
     </div>
     <div class="clearit"></div>
</div>

这是我的 jQuery 代码:

$("#agMidBox").on('click', '.agRightArrow', function() {
    $(this).siblings(".agShowImgBox").children(".centerImg:lt(6)").addClass("hideThis");
    $(this).siblings(".agShowImgBox").children(".centerImg:gt(5)").removeClass("hideThis");                 
});

问题是我无法从 agShowImgBox 类中的 6th div 中删除类 hideThis

这段代码应该可以做到这一点,对

$(this).siblings(".agShowImgBox")
       .children(".centerImg:gt(5)")
       .removeClass("hideThis");

添加类正在工作。但不会删除课程。

【问题讨论】:

  • 你只是想在一个特定的 div 或其中的几个 div 中添加和删除类吗?
  • 点击该按钮后,我必须将类添加到前 5 个 div,同时删除接下来 5 个 div 的类

标签: javascript jquery html jquery-selectors


【解决方案1】:

:gt() 从零开始。 :gt(5) 将匹配 第六个元素之后的元素,但不会匹配第六个元素本身。

你应该写:

$(this).siblings(".agShowImgBox")
       .children(".centerImg:gt(4)")
       .removeClass("hideThis");

【讨论】:

  • 谢谢老兄..明白了..但我不明白为什么会这样!!大于 5 意味着第六也应该被视为仪式!
  • @SandeepRao,好吧,由于索引是从零开始的,大于索引 5 实际上意味着 在第六项之后(第一项有索引 0)。你最终会习惯的:)
猜你喜欢
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 2018-11-21
  • 1970-01-01
相关资源
最近更新 更多