gpt4 book ai didi

javascript - Jquery 数组混淆中的 .map() 函数

转载 作者:行者123 更新时间:2023-11-28 17:18:33 25 4
gpt4 key购买 nike

我正在尝试实现一些非常简单的事情,但无法使其正常工作。

我正在循环遍历 trtd 子级,并尝试将单元格的值放入数组中。

$($("#thetable").find("tr")[0]).find("td").map(function(x) {return $(x).innerText;} );

我做错了什么?

jsFiddle如果有帮助的话。

最佳答案

像往常一样,对于 jQuery 类似数组的方法,第一个参数是索引,而不是相关元素。另一个问题是 innerText 是一个普通元素的属性,而不是 jQuery 集合 - 要么使用 jQuery 版本 (.text()) ,或者先不要将元素转换为 jQuery 集合:

var rows = $("#thetable").find("tr")
var test = $(rows[0]).find("td").map(function(_, x) { return x.innerText;});
console.log(test);
  <table id="thetable">
<tr>
<td>20</td>
<td>2</td>
<td>10</td>
<td>30</td>
<td>50</td>
</tr>
</table>
</div>

当然,在 jQuery 集合上使用 .map 将会返回一个 jQuery 集合 - 如果您不想要这样,可以调用 .get()将结果转换为数组

var test = $(rows[0]).find("td").map(function(_, x) { return x.innerText;}).get();

或者首先使用原生数组方法,而不是 jQuery(无论如何都不需要 jQuery 来完成这么简单的事情):

const arr = Array.prototype.map.call(
document.querySelectorAll('#thetable td'),
td => td.textContent
);
console.log(arr);
<div id="banner-message">
<table id="thetable">
<tr>
<td>20</td>
<td>2</td>
<td>10</td>
<td>30</td>
<td>50</td>
</tr>
</table>
</div>

关于javascript - Jquery 数组混淆中的 .map() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com