当一组元素不总是在同一个父元素中时,如何找到下一个匹配的元素
How do you find the next matched element(s), when the set of elements are not always inside the same parent
我正在修改一个日历插件。该插件将今天的类添加到今天的日期中。我想把"foo"类添加到"today"和之后的两天。
插件不是每个月都有一个无序列表,而是为每一行生成一个新的无序列表。
当合适的列表项交叉到不同的父元素中时,找到它们的最佳方法是什么?
案例1
<ul>
<li class="day"></li>
<li class="day"></li>
<li class="day today foo"></li>
<li class="day foo"></li>
<li class="day foo"></li>
<li class="day"></li>
<li class="day"></li>
</ul>
案例2
<ul>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day today foo"></li>
</ul>
<ul>
<li class="day foo"></li>
<li class="day foo"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
<li class="day"></li>
</ul>
我一直在看.find、.nextAll、.nextUntil,但不确定如何完成。或者我应该创建一个包含所有天数的数组,然后在今天或其他时间将其拆分?
您可以找到所有的日子,然后通过index(element)
找到jQuery集合中的"today"一个在哪里,然后使用slice
来获得它和以下两个:
var days = $(".day")
var todayIndex = days.index($(".today"));
days.slice(todayIndex, todayIndex + 3).addClass("foo");
实例(第一种情况):
var days = $(".day")
var todayIndex = days.index($(".today"));
days.slice(todayIndex, todayIndex + 3).addClass("foo");
.today {
border: 1px solid #ddd;
}
.foo {
color: blue;
}
<ul>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day today">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
实例(第二种情况):
var days = $(".day")
var todayIndex = days.index($(".today"));
days.slice(todayIndex, todayIndex + 3).addClass("foo");
.today {
border: 1px solid #ddd;
}
.foo {
color: blue;
}
<ul>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day today">xxxx</li>
</ul>
<ul>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
<li class="day">xxxx</li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
相关文章:
- [Vue warn]:找不到元素
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 找不到javascript元素
- 在页面中找不到元素的正确位置.函数未考虑填充
- 可以'ajax调用后,我找不到模板中的元素
- JQuery找不到元素
- 在Selenium Web驱动程序2.0中找不到元素
- 元素找不到带有文本的selenium Web驱动程序
- 比较数组中的元素,找出元素的最大和
- 没有这样的元素:找不到元素:正在验证web元素是否丢失
- jQuery没有'找不到元素或其属性
- jQuery在通过ajax调用返回的一些html中找不到类元素
- 找不到下一个元素
- 找出两个dom元素的差异,然后使它们相同
- dn'我找不到适合课堂的语法元素
- Jquery index() 找不到我的元素
- FusionCharts--找不到容器 DOM 元素
- 为什么lastindexOf()找不到最后一个元素
- 聚合物查询选择器在聚合物元素中找不到自定义聚合物元素
- 在 DOM 元素中找不到匹配项时显示消息