【发布时间】:2021-12-21 11:24:54
【问题描述】:
如何使用标签的类名作为数组值将 HTML 表转换为 javascript 数组? 假设我们有以下 HTML 代码:
<table class="grid">
<tr>
<td class="available"></td>
<td class="busy"></td>
<td class="busy"></td>
<td class="available"></td>
</tr>
<tr>
<td class="busy"></td>
<td class="available"></td>
<td class="busy"></td>
<td class="available"></td>
</tr>
</table>
我希望数组看起来像:[["available","busy","busy","available"],["busy","available","busy","available"]]
我尝试了以下方法:
var myTableArray = [];
$("table#grid tr").each(function() {
var arrayOfThisRow = [];
var tableData = $(this).find('td');
if (tableData.length > 0) {
tableData.each(function() { arrayOfThisRow.push($(this).text()); });
myTableArray.push(arrayOfThisRow);
}
});
console.log(myTableArray);
但它正在打印一个空数组,因为 td 标签不包含文本。然后我尝试替换
$(this).text()
与
$(this).className()
但这没有用。有什么建议吗?
【问题讨论】:
-
我假设
<td>标签应该包装class=...的东西? -
如果你想在jQuery中获取class属性,你应该使用
.attr('class')。 -
@RatajS 谢谢,但是我用 $(this).attr('class') 替换了 $(this).text() ,它仍然打印了一个空数组。有什么建议吗?
标签: javascript html arrays html-table