首页 > 解决方案 > 从 jquery 选择器每个函数返回一个数组

问题描述

我有一个表,我在其中获取所有行的第 1 td 和第 9 tds 列的值

$("table tr").each(function() {
  return ($(this).find("td").eq(0).text() + " " + $(this).find("td").eq(8).text())
}).join("#")

我需要以数组的形式得到结果

作为

["apple 20", "banana 30", "pears 30"].join("#")

预期的结果是

apple 20#banana 30#pears 30

如何修改我的迭代以返回一个数组。然后我可以加入我需要的任何角色。

标签: htmljqueryarrays

解决方案


你可以这样做:

var result = $("table tr").map(function() {
  return ($(this).find("td").eq(0).text() + " " + $(this).find("td").eq(1).text())
}).get().join("#").

.each不会返回你想要的重定向结果,它会返回tr你表中的所有

演示

var n = $("table tr").each(function() {
  return ($(this).find("td").eq(0).text() + " " + $(this).find("td").eq(1).text())
})

console.log(n)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>1</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>8</td>
</tr>
</tbody>
</table>


推荐阅读