j查询到特定元素后按类逐行目标表
jQuery to target table row by class after specific element
所以我有一个有六行的表格:
<table>
<tr class="current">
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr class="details">
<td>3</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr class="details">
<td>6</td>
</tr>
</table>
我想做的是使用 class="details" 定位行。由于页面上有多个带有该类的行,因此我需要定位类"current"之后的行。
我尝试过使用 .find() 和 .closest(),但由于我的目标不是祖先或后代,因此它们不起作用。我也尝试使用.next(),但没有任何运气。
使用 .next()
不起作用,因为.details
不是.current
的直系兄弟。使用 .closest()
不起作用,因为它从元素本身开始,然后沿着 DOM(搜索祖先)向上移动,并且不会在同一级别嵌套的同级中查找。
基本上,我们试图模拟CSS中通用兄弟选择器~
的行为,除了必须是第一次出现。因此,我们使用 .nextAll()
,并将其与返回满足.nextAll()
的第一个元素的 .first()
配对,即
// jQuery-based DOM transversal
$('.current').nextAll('.details').first();
你当然可以使用CSS,但我怀疑这会降低效率。此外,通过使用CSS选择器,您将无法通过链接其他方法来横向DOM:
// CSS-based selection
$('.current ~ .details:first');
$(function() {
$('.current').nextAll('.details').first().css('background-color','#eee');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class="current">
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr class="details">
<td>3</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr class="details">
<td>6</td>
</tr>
</table>
相关文章:
- NodeJS-readline暂停和恢复事件发射器(逐行读取)
- 使用Javascript从一个文本区域逐行解析.subsr(0,6)到另一个文本区
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- 读取制表符分隔的文件,逐行读取,而不是使用制表符分隔拆分每一行
- 节点画布:将PNG文件输出为交错/逐行扫描
- 如何在Web SQL数据库中逐行插入文本文件
- 如何在“逐行”npm 中遍历所有行
- 动画图表js(线),动画图表逐行绘制
- NodeJS - 逐行读取函数 + while 循环
- 如果可能的话,我需要帮助了解这个jQuery过滤器函数是如何工作的,逐行工作
- 节点.JS逐行读取字符串
- 逐行缩进 Javascript 文件
- 逐行阅读文本区域中的文本
- “没有光纤运行”,同时尝试逐行解析 csv
- D3 - 以设置的延迟逐行加载和显示数据
- j查询到特定元素后按类逐行目标表
- 如何使用谷歌应用脚本和谷歌工作表数据逐行发送html电子邮件
- 使用 javaScript 逐行读取文件
- NodeJS 流解析并根据承诺结果逐行写入 json
- 逐行显示递归