Как обычно, для jQuery-подобных методов первым аргументом является index , а не рассматриваемый элемент.Другая проблема заключается в том, что 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>
Конечно, использование .map
в коллекции jQuery даст вам в ответ коллекцию 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>