jQuery get 所有值的数组<th>



我想获得一个表中所有<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

jQuery有自己的.map()方法,该方法将映射到集合上。它返回一个结果集合,您可以使用.get()在最后将其转换为数组。
$("th").map((i, el) => el.innerText).get();

相关内容

最新更新