从 jquery 选择器每个函数返回一个数组

Posted

技术标签:

【中文标题】从 jquery 选择器每个函数返回一个数组【英文标题】:Return an array from jquery selector each function 【发布时间】:2021-11-21 23:16:28 【问题描述】:

我有一个表,我在其中获取所有行的第 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

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

【问题讨论】:

【参考方案1】:

你可以这样做:

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>

【讨论】:

以上是关于从 jquery 选择器每个函数返回一个数组的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery函数

jquery name选择器返回value数组

jquery:为啥选择器返回我一个数组,但属性没有?

模拟Jquery选择器

《JQuery实战》第1-3章

JQuery选择器Sizzle词法分析器的理解