答案 0 :(得分:3)
通常,对于类似jQuery数组的方法,第一个参数是 index ,而不是有问题的元素。另一个问题是innerText
是 plain元素的属性,而不是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()
将其转换为数组< / p>
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>
答案 1 :(得分:0)
x
值存储未找到的元素的索引,使用this
获取当前元素,使用text()
获取内部文本:
var rows = $("#thetable").find("tr")
console.log($(rows[0]).find("td"));
var test = $(rows[0]).find("td").map(function(x) {return $(this).text();});
console.log(test);
要从纯数组中的jquery对象转换,请使用get()
方法
console.log(test.get());