我有一个表,我从中获取值并将其存储在2D数组中,然后我将这个2D数组转置并存储另一个名为输出数组的数组,现在我必须在以前使用的表的 td 中分配这些值。 以下是代码:
$(document).ready(function(){
var rows = [];
var output = [];
$("#btnTranspose").on("click",function(){
$("tr").each(function(){
var columns = [];
$(this).find("td").each(function(){
columns.push($(this).text());
});
rows.push(columns);
});
for(var i = 0; i < rows.length; i++){
output[i] = [];
for(var j = 0; j < rows[i].length; j++){
output[i][j] = rows[j][i];
}
}
$("tr").each(function(){
$(this).find("td").each(function(){
for(var k = 0; k < output.length; k++){
for(var l = 0; l < output[k].length; l++){
$(this).text(output[k][l]);
}
}
});
});
});
});
&#13;
body{
}
table{
border: 1px solid black;
}
td{
border: 1px solid black;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Transpose Using jQuery</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<table id="matrix">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
<td>10</td>
</tr>
<tr>
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
<td>15</td>
</tr>
<tr>
<td>16</td>
<td>17</td>
<td>18</td>
<td>19</td>
<td>20</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
<td>25</td>
</tr>
</tbody>
</table>
<input type="button" value="Transpose!" id="btnTranspose">
<table id="outputTable">
</table>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
&#13;
问题是:代码运行每个td,输出数组的元素分配给每个 td ,但我想分配一个输出元素一次将数组添加到一个 td 。我怎么做?
答案 0 :(得分:0)
each()
回调为您提供该实例的索引。因此,当您迭代行时,您已经知道外部数组索引。然后,当你迭代单元格时,你有单元格索引
试
$("tr").each(function(rowIndex) {
var rowData = output[rowIndex];
$(this).find("td").each(function(cellIndex) {
$(this).text(rowData[cellIndex]);
});
});