首页 > 解决方案 > 如何在 jQuery 中将元素存储为对象而不是 HTML 元素?

问题描述

在 HTML 表中,我有这样的一行:

<tr class="csp-criterion">
    <td>Lorem ipsum</td>
    <td><input type="number"></td>
    <td class="csp-matrix-value">10</td>
    <td></td>
    <td class="csp-matrix-value">4</td>
    <td></td>
    <td class="csp-matrix-value">7</td>
    <td></td>
</tr>

现在我想用 class 获取每个元素csp-matrix-value,以便稍后访问该元素内的文本。所以我将元素存储在这样的变量中:

$ratingTds = $('tr').children('td.csp-matrix-value');

我期待我以后可以做这样的事情:

$ratingTds.each().text();

但这会导致错误。我认为这些元素不是作为对象存储的,而是作为纯 HTML 元素存储的。但我真的不确定,这里发生了什么。

标签: javascriptjquery

解决方案


.each()接受一个函数作为参数:

$ratingTds = $('tr').children('td.csp-matrix-value');
$ratingTds.each((_, el) => console.log($(el).text()));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr class="csp-criterion">
    <td>Lorem ipsum</td>
    <td><input type="number"></td>
    <td class="csp-matrix-value">10</td>
    <td></td>
    <td class="csp-matrix-value">4</td>
    <td></td>
    <td class="csp-matrix-value">7</td>
    <td></td>
  </tr>

</table>


推荐阅读