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

如何无需each遍历获取每个row类下首个test类的内容?

获取每个.row下首个.test元素内容的无遍历方案

刚好碰到过类似的场景!你需要精准选中每个.row容器里第一个出现的.test元素,又不想用each遍历,那可以靠CSS选择器的组合一次性定位目标元素,再转成数组就行。

核心思路

因为.test在每个.row里的位置不固定,:first-child或者:first-of-type这类依赖位置的选择器没用,但我们可以用兄弟选择器排除法——选中所有.row下的.test,但排除掉那些前面已经有同层级.test的元素,剩下的自然就是每个.row里的第一个.test。

实现代码

// 一次性选中所有目标元素,转成数组后提取文本(trim去掉换行空格)
const targetTexts = Array.from(
  document.querySelectorAll('.row .test:not(.row .test ~ .test)')
).map(el => el.textContent.trim());

console.log(targetTexts); // 输出 ["bbbb","ffff","jjjj"]

选择器解释

  • .row .test:先选中所有嵌套在.row里的.test元素
  • :not(.row .test ~ .test):用:not()排除掉那些前面有同级别.test的元素(~是通用兄弟选择器,会匹配前面有指定元素的所有同级后续元素),这样就只保留了每个.row里的第一个.test

这个方法不用遍历每个.row,靠选择器直接定位所有目标,完全符合你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:11:54