装载时出现问题<tr>文本转换为数组的元素
Having Issue on Loading <tr> text into Element of An Array
你能看看这段代码,告诉我如何将每行<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);
<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>
var arr = [];
$('#authors tr').each(function () {
var tdval = '';
$(this).find('td').each(function(){
tdval += $(this).text()+', ';
})
arr.push(tdval);
});
console.log(arr);
使用此代码
您可以使用map()
而不是each()
- 使用
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>
使用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>
可能不是最优雅的方式,但这将达到的效果
var arr = [];
$('#authors tr').each(function () {
arr.push($(this).text().trim().replace(/('n)/g, ','));
});
console.log(arr);
它基本上删除了开始和结束的新行,然后用逗号
相关文章:
- 将纯文本URL转换为可单击链接
- 将格式化的纯文本转换为HTML
- 使用jquery将输入字段转换为文本
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- 转换<a>使用jQuery将文本字符串转换为dom元素
- JavaScript:将字符串数组转换为文本区域
- 有没有一种简单的方法可以将整数转换为等效文本.即:1变为1
- 使用PageMod将所有文本框转换为所见即所得HTML编辑器
- 为什么从JSON文本到类型的转换不包括函数
- 使用带有文本转换的jquery获取文本
- 将数量文本框转换为下拉列表
- 如何在节点.js上将文本转换为 Base58
- 如何使用RegEx转换文本中的表情符号
- Javascript正则表达式替换以转换文本
- 在 html 页面上转换文本的最佳方法
- 翻译 API 以仅转换文本部分(而不是 HTML)
- “转换”文本框到带有滑动动画的文本区域
- 转换文本区域中的输入字段
- Jqgrid转换文本
- jQuery AJAX - JSONP转换文本到JSON