document.querySelectorAll 一次获取所有选定元素的 innerText 纯 javascript

document.querySelectorAll get innerText of ALL selected elements at once pure javascript

我想获取很长 html table(随机长度)的整列的所有 innerText。 我正在使用此代码:

var tbEls = document.querySelectorAll('#tBodyID tr td:nth-child(cidx)');

其中 cidx = 我要从中提取内容的列索引。

但是这样的代码提取了所有的 td 元素(当然还有里面的 innerText)。 但它不会直接提取其中的所有 innerText。为此,我必须使用 for 循环重新处理返回的 tdEls 数组,以从每个 tbEls[i] 元素中提取其自己的 innerText。它有效但是...

我的问题是:

在纯 JS 中(没有外部库或框架)是否可以使用更直接的方法改进某些方式 只是 querySelectorAll 参数 ('#tBodyID tr td:nth-child(cidx)') 来获得一次直接 所有 td 元素 innerText 并且只在一个 javascript 语句中,而不需要使用 for 循环或其他任何方法重新处理返回的数组?

换句话说,是否有某种 innerText 选择器可用于一次获取所有内容而无需任何额外循环?

如果旧浏览器无法识别,那完全没有问题,我为他们感到抱歉。

我希望实现的是这样的:

var arrTblColInnerText = document.querySelectorAll('#tBodyID tr td:nth-child(cidx):alltd:innerText');

我想得到一个类似如下的数组:

0: value from column cidx cell 0
1: value from column cidx cell 1
2: value from column cidx cell 2
3: value from column cidx cell 3
...
n: value from column cidx cell n

提前致谢。

我找到的最简单的方法是先将 nodeList 转换为数组,然后使用映射:

var nodes = document.querySelectorAll("h3 em");
var list = [].slice.call(nodes);
var innertext = list.map(function(e) { return e.innerText; }).join("\n");

这是 2021 年的单行本。它说从 querySelectorAll 返回的 NodeList 将其制成一个数组,然后将 innerText 映射到一个数组中。

Array.from(document.querySelectorAll("h3 em")).map(x => x.innerText)