You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何定位#showdata按钮后的首个.confluenceTable并读取首列数据?

解决jQuery选择#showdata按钮后首个表格第一列的问题

嘿,我来帮你搞定这个问题!你遇到的核心问题是选择器的层级逻辑错了——nextAll()方法只会查找目标元素的同级后续元素,但你直接把tr:gt(0) td:nth-child(1)拼在.confluenceTable后面,相当于在找#showdata的同级元素里有没有tr,这显然不成立,因为tr是.confluenceTable的子元素,不是同级节点。

正确的写法应该分两步走:

  1. 先定位到#showdata之后的第一个.confluenceTable(同级元素)
  2. 再在这个表格内部查找目标单元格

完整代码如下:

let projects_list = [];
$("#showdata").nextAll(".confluenceTable").first()
  .find("tr:gt(0) td:nth-child(1)")
  .each(function() {
    projects_list.push($(this).text().trim());
  });

代码逻辑拆解:

  • $("#showdata").nextAll(".confluenceTable"):找到#showdata按钮之后所有同级的.confluenceTable表格元素
  • .first():筛选出其中的第一个表格(也就是你需要的“首个”目标表格)
  • .find("tr:gt(0) td:nth-child(1)"):在这个表格内部,查找跳过第一行(表头行)的所有数据行,再取每行的第一列单元格
  • 后续的each循环逻辑和你原来的代码一致,把单元格文本去空格后存入数组

额外小技巧:

如果#showdata按钮和目标表格是紧挨着的同级元素(中间没有其他元素),也可以用更简洁的next()方法代替nextAll().first():

$("#showdata").next(".confluenceTable")
  .find("tr:gt(0) td:nth-child(1)")
  .each(function() {
    projects_list.push($(this).text().trim());
  });

内容的提问来源于stack exchange,提问作者LA_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:42:41