代码之家  ›  专栏  ›  技术社区  ›  Jishad

根据可用的类获取跨度索引

  •  0
  • Jishad  · 技术社区  · 8 年前

    我的HTML如下所示。

     <div class="col-md-12 line">
    
       <span class="d1  available " seatid="515" seatname="A1"></span>
    
       <span class="d1  available " seatid="516" seatname="A2"></span>
    
       <span class="d1  available " seatid="555" seatname="A3"></span>
    
       <span class="d1  available " seatid="556" seatname="A4"></span>
    
       <span></span>
    
       <span class="d1  available " seatid="517" seatname="A5"></span>
    
       <span class="d1  available " seatid="518" seatname="A6"></span>
    
     </div>
    

    当我点击span时,我想得到span的索引,与具有相同类的所有其他span进行比较,

    也就是说。。

    1. 单击上一个之前 跨度 我需要索引 4.

    这是我现在使用的代码。

    var selector = $(this);
    var selectIndex = selector.index();
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   Bourbia Brahim    8 年前

    您应该将当前元素传递给 index() 从当前所有可用范围中获取其索引

    因此,您可以使用 $("span.available").index($(this))

    PS:避免在html标记上直接使用属性,您必须使用 data- 对于seatid和seatname=>(data seatid,data seatname),您可以使用 dataset data() 在jquery中

    请参见下面的代码段

    $(function() {
      $("span.available").on("click",function(){
        console.log("index : " + $("span.available").index($(this)) + " seatid: "+$(this).data('seatid') );
      })
    })
    span {
      display:block;
    }
    
    .as-console-wrapper {
      max-height:75px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="col-md-12 line">
    
      <span class="d1  available " data-seatid="515" data-seatname="A1">A1</span>
    
      <span class="d1  available " data-seatid="516" data-seatname="A2">A2</span>
    
      <span class="d1  available " data-seatid="555" data-seatname="A3">A3</span>
    
      <span class="d1  available " data-seatid="556" data-seatname="A4">A4</span>
    
      <span>empty</span>
    
      <span class="d1  available " data-seatid="517" data-seatname="A5">A5</span>
    
      <span class="d1  available " data-seatid="518" data-seatname="A6">A6</span>
    
    </div>
        2
  •  0
  •   Jishad    8 年前
    var selectIndex = selector.parent().children('span.available').index(selector);