您能否请一看这段代码,让我知道如何将每行<tr>
的文本值存储在数组的元素中,并在<td>
之间添加空格
有点像
arr = ["Jill, Smith, 50","Eve, Jackson, 94", "John, Doe, 80",... ]
现在发生的事情是我得到了这个结果!
["↵ Jill↵ Smith ↵ 50↵ ", "↵ Eve↵ Jackson ↵ 94↵ ", "↵ John↵ Doe ↵ 80↵ ", "↵ Mac↵ Raian ↵ 34↵ "]
这是我的代码
var arr = [];
$('#authors tr').each(function () {
arr.push($(this).text());
});
console.log(arr);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="authors" style="width:100%">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
<tr>
<td>Mac</td>
<td>Raian</td>
<td>34</td>
</tr>
</table>
&#13;
答案 0 :(得分:3)
var arr = [];
$('#authors tr').each(function () {
var tdval = '';
$(this).find('td').each(function(){
tdval += $(this).text()+', ';
})
arr.push(tdval);
});
console.log(arr);
使用此代码
答案 1 :(得分:1)
map()
来迭代生成文本数组get()
join()
var arr = $('#authors tr').map(function() {
return $('td', this).map(function() { // ietrate over td nside tr
return $(this).text(); // return text content inside
}).get().join() // get text array and join the array values with space
}).get()
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="authors" style="width:100%">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
<tr>
<td>Mac</td>
<td>Raian</td>
<td>34</td>
</tr>
</table>
答案 2 :(得分:0)
使用jquery map
和join()
。
var arr = [];
$('#authors tr').each(function() {
arr.push(
$(this).find("td").map(function(i, o) {
return $(o).text();
}).get().join(",")
)
});
console.log(arr);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="authors" style="width:100%">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
<tr>
<td>Mac</td>
<td>Raian</td>
<td>34</td>
</tr>
</table>
答案 3 :(得分:0)
可能不是最优雅的方式,但这可以解决问题
var arr = [];
$('#authors tr').each(function () {
arr.push($(this).text().trim().replace(/(\n)/g, ','));
});
console.log(arr);
它基本上删除了新行的开头和结尾,然后用逗号替换其他新行