jQuery:选择具有相同类的彼此相邻的2个元素

标签 jquery jquery-selectors

这是我的标记:

<button>next</button
<div class="seats">
  <div class="seat taken">1</div>
  <div class="seat taken">2</div>
  <div class="seat">3</div>
  <div class="seat">4</div>
  <div class="seat taken">5</div>
  <div class="seat">6</div>
  <div class="seat">7</div>
  <div class="seat taken">8</div>
  <div class="seat taken">9</div>
</div>

我正在寻找一种方法来选择前 2 个空闲座位(没有“已参加”类(class)),给定的示例应返回座位 3+4。 是否有一种简单的方法来拥有可变数量的座位,例如。选择 4 个相邻的座位? 是否可以定义从哪里开始搜索空闲座位的偏移量?我的意思是我想点击下一个按钮,它应该选择接下来的 2 个空闲座位 (6+7)。 提前致谢。

最佳答案

假设您被允许并且能够向每把椅子添加更多信息:我会扩展您当前的 html,使其看起来像这样:

<button>next</button>
<div class="seats">
  <div class="seat taken" data-chairNumber="0">1</div>
  <div class="seat taken" data-chairNumber="1">2</div>
  <div class="seat" data-chairNumber="2">3</div>
  <div class="seat" data-chairNumber="3">4</div>
  <div class="seat taken" data-chairNumber="5">5</div>
  <div class="seat" data-chairNumber="6">6</div>
  <div class="seat" data-chairNumber="7">7</div>
  <div class="seat taken" data-chairNumber="8">8</div>
  <div class="seat taken" data-chairNumber="9">9</div>
</div>

然后使用 jQuery 只选择未占用的椅子:

var chairs = $(".seat:not(.taken)");

然后走过这些椅子并检查是否存在一对(可能会扩展此以获得更大的组合):

var chairs = $(".seat:not(.taken)");
var currentChair = -2; //idunnkno
$.each(chairs, function(chair) {
    var chairnumber = $(chair).data("chairNumber");
    if(chairnumber - 1 === currentChair)
    {
         return { chairA : currentChair, chairB : chairNumber };
    }
    else {
         currentChair = chairnumber;
    }
});

如果找到一对,请归还与椅子一起的元素。

关于jQuery:选择具有相同类的彼此相邻的2个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35580859/

相关文章:

javascript - JQuery:如何获取选定的单选按钮值?

javascript - jQuerys $.trim(),错误还是写得不好?

jquery - 如何使用 JQuery 选择没有特定子元素的元素

javascript - jquery next() 什么都不返回

javascript - jquery 自定义数据属性在 div 标签内不起作用

javascript - javascript中涉及反斜杠的字符串拆分

javascript - 在固定区域随机移动图像

jquery - 动态地为 div 添加额外的边距

javascript - 动态 id 选择器未被调用或实例化

JQuery 后代选择器选择页面上的所有元素?