【问题标题】:jQuery get Array of all <th> valuesjQuery 获取所有 <the> 值的数组
【发布时间】:2021-07-11 14:50:30
【问题描述】:

我想获取一个表中所有&lt;th&gt;s的所有内部文本的数组。

以下作品

$("th").toArray().map(th =&gt; th.innerText)

只是想知道在直接 jQuery 中是否有更好的方法(必须转换为 Array 然后使用 JS 方法)

【问题讨论】:

    标签: javascript html jquery node.js


    【解决方案1】:

    如果您希望避免使用 .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() 的第二个参数。这很有用。
    • 很高兴了解 Array.from map arg。为什么 textContent 优于 innerText?
    【解决方案2】:

    jQuery 有自己的.map() 方法,可以映射集合。它返回结果的集合,您可以在最后使用.get() 将其转换为数组。

    $("th").map((i, el) => el.innerText).get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2017-08-11
      • 2011-04-24
      • 2014-08-21
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      相关资源
      最近更新 更多