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

标签 elements innertext selectors-api

我想获取一个很长的 html 表(随机长度)的整列的所有 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");

关于elements - document.querySelectorAll 一次获取所有选定元素的 innerText 纯 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774726/

相关文章:

javascript - 谷歌地图 API 地理编码

javascript - 如果 div innerText 改变触发 JavaScript 事件

vba - 如何在允许您访问其方法的变量中保存对 `querySelectorAll` 匹配的项目的引用?

javascript - 具有边界条件的 querySelectorAll

javascript - 通过Id获取多个元素

xslt合并同名多个节点

javascript - 在 Firefox 中,剑道按钮文本在 IE 和 Chrome 中工作时不会改变

javascript - querySelectorAll 不适用于指定元素

list - 如何向 Prolog 指定列表的所有元素必须为 1 或 0?