如何使用 Javascript 在 table 中添加列和行
How to add columns and rows in table using Javascript
我在一个使用 DOJO 工具包的项目中生成了以下 table:
<div id="table" class="crudTable">
<div class="crudContainer">
<div class="crudHeaderColumn crudColumn">
<div class="crudRow crudHeader">A</div>
<div class="crudRow crudHeader">B</div>
<div class="crudRow crudHeader">C</div>
</div>
<div class="crudColumn">
<div class="crudRow">1</div>
<div class="crudRow">3</div>
<div class="crudRow">3</div>
</div>
<div class="crudColumn">
<div class="crudRow">4</div>
<div class="crudRow">5</div>
<div class="crudRow">6</div>
</div>
</div>
</div>
它基本上是一个垂直的 table(以 headers 作为第一列,每一项都是另一列)。假设数据库项具有属性 A、B、C 和 D 的值,但 table 最初在视图中仅呈现 A、B、C 属性。
在table生成之后,我想添加一个新的table header(这是一个新的crudRow crudHeader)来添加D,因此为每个项目添加一个新的单元格, 以显示其D值。
我该怎么做?
首先,您必须使用 appendChild()
方法在 div
header 中插入新的 child
。
下一步是 iterate
所有 crudColumn
元素并为每个 crudColumn
添加一个新的 div
。
这是一个例子。
var button=document.getElementById('change');
var table=document.querySelector('#table .crudContainer');
button.onclick=function(){
var header=document.querySelector('#table .crudHeaderColumn');
var newDiv=document.createElement('div');
newDiv.innerHTML="D";
header.appendChild(newDiv);
var rows=document.querySelectorAll('#table .crudContainer .crudColumn');
for(var i=1;i<rows.length;i++){
var row=rows[i];
var newDiv=document.createElement('div');
newDiv.innerHTML="new cell";
row.appendChild(newDiv);
}
}
.crudColumn div{
float:left;
}
<div id="table" class="crudTable">
<div class="crudContainer">
<div class="crudHeaderColumn crudColumn">
<div class="crudRow crudHeader">A</div>
<div class="crudRow crudHeader">B</div>
<div class="crudRow crudHeader">C</div>
</div>
<br>
<div class="crudColumn">
<div class="crudRow">1</div>
<div class="crudRow">3</div>
<div class="crudRow">3</div>
</div>
<br>
<div class="crudColumn">
<div class="crudRow">4</div>
<div class="crudRow">5</div>
<div class="crudRow">6</div>
</div>
</div>
</div>
<br>
<button id="change">Change</button>
我在一个使用 DOJO 工具包的项目中生成了以下 table:
<div id="table" class="crudTable">
<div class="crudContainer">
<div class="crudHeaderColumn crudColumn">
<div class="crudRow crudHeader">A</div>
<div class="crudRow crudHeader">B</div>
<div class="crudRow crudHeader">C</div>
</div>
<div class="crudColumn">
<div class="crudRow">1</div>
<div class="crudRow">3</div>
<div class="crudRow">3</div>
</div>
<div class="crudColumn">
<div class="crudRow">4</div>
<div class="crudRow">5</div>
<div class="crudRow">6</div>
</div>
</div>
</div>
它基本上是一个垂直的 table(以 headers 作为第一列,每一项都是另一列)。假设数据库项具有属性 A、B、C 和 D 的值,但 table 最初在视图中仅呈现 A、B、C 属性。
在table生成之后,我想添加一个新的table header(这是一个新的crudRow crudHeader)来添加D,因此为每个项目添加一个新的单元格, 以显示其D值。
我该怎么做?
首先,您必须使用 appendChild()
方法在 div
header 中插入新的 child
。
下一步是 iterate
所有 crudColumn
元素并为每个 crudColumn
添加一个新的 div
。
这是一个例子。
var button=document.getElementById('change');
var table=document.querySelector('#table .crudContainer');
button.onclick=function(){
var header=document.querySelector('#table .crudHeaderColumn');
var newDiv=document.createElement('div');
newDiv.innerHTML="D";
header.appendChild(newDiv);
var rows=document.querySelectorAll('#table .crudContainer .crudColumn');
for(var i=1;i<rows.length;i++){
var row=rows[i];
var newDiv=document.createElement('div');
newDiv.innerHTML="new cell";
row.appendChild(newDiv);
}
}
.crudColumn div{
float:left;
}
<div id="table" class="crudTable">
<div class="crudContainer">
<div class="crudHeaderColumn crudColumn">
<div class="crudRow crudHeader">A</div>
<div class="crudRow crudHeader">B</div>
<div class="crudRow crudHeader">C</div>
</div>
<br>
<div class="crudColumn">
<div class="crudRow">1</div>
<div class="crudRow">3</div>
<div class="crudRow">3</div>
</div>
<br>
<div class="crudColumn">
<div class="crudRow">4</div>
<div class="crudRow">5</div>
<div class="crudRow">6</div>
</div>
</div>
</div>
<br>
<button id="change">Change</button>