【发布时间】:2021-07-11 14:50:30
【问题描述】:
我想获取一个表中所有<th>s的所有内部文本的数组。
以下作品
$("th").toArray().map(th => th.innerText)
只是想知道在直接 jQuery 中是否有更好的方法(必须转换为 Array 然后使用 JS 方法)
【问题讨论】:
标签: javascript html jquery node.js
我想获取一个表中所有<th>s的所有内部文本的数组。
以下作品
$("th").toArray().map(th => th.innerText)
只是想知道在直接 jQuery 中是否有更好的方法(必须转换为 Array 然后使用 JS 方法)
【问题讨论】:
标签: javascript html jquery node.js
如果您希望避免使用 .map 创建中间数组,则有一个更有效 的方法,不使用 jQuery,它只为输出创建一个数组,但它需要更多源代码:
const texts = Array.from(
document.querySelectorAll('th'),
th => tx.innerText
);
从您的原始版本开始,您可以通过在 .toArray 之前映射来使用 jQuery 的 .text:
const texts = $("th").map(function() { return $(this).text(); }).toArray();
console.log(texts);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr><th>foo</th></tr>
</table>
但您可能想使用.textContent 而不是.innerText。
【讨论】:
Array.from() 的第二个参数。这很有用。
jQuery 有自己的.map() 方法,可以映射集合。它返回结果的集合,您可以在最后使用.get() 将其转换为数组。
$("th").map((i, el) => el.innerText).get();
【讨论】: