jQuery有自己的
我想获得一个表中所有<th>
的所有内部文本的数组。
的以下工作
$("th").toArray().map(th => th.innerText)
只是想知道在直接jQuery中是否有更好的方法(我必须转换为Array,然后使用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
。
.map()
方法,该方法将映射到集合上。它返回一个结果集合,您可以使用.get()
在最后将其转换为数组。
$("th").map((i, el) => el.innerText).get();