我有一个问题,我无法理解(JavaScript的新手)。需要知道如何使用document.createElement事件在HTML中增加变量(如果这是正确的术语)。
每次点击“添加行”按钮时我需要增加'value'属性,反之亦然“<删除行”按钮。
到目前为止,我有:
<div id='ctrl_container'>
<form action='$thisuri' method='post' id='spa' name='date2'>
<input type="button" value="Add Row" onclick="addRow('dataTable')" />
<input type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<table id="dataTable" border='0' cellspacing='0' cellpadding='0' >
<tr>
<th> Select </th>
<th> ID </th>
<th> Question </th>
</tr>
<tbody>
<tr>
<td> <input type="checkbox" name="chk[]" /> </td>
<td> 1<input type="hidden" name="Q[]" value="1" /> </td>
<td> <input type="text" name="txtbox[]" /> </td>
</tr>
</tbody>
</table>
<input type='Submit' value='Submit Planned Audit' name='send'>
</form>
</div>
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = document.getElementById(tableID).getElementsByTagName('tbody')
[1].getElementsByTagName('tr').length;
var row = table.insertRow(rowCount +1);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "hidden";
element1.name = "Q[]";
element1.value = rowCount +1;
cell2.appendChild(element1);
cell2.innerHTML = rowCount +1;
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
}
有人可以给我一些指示吗?
答案 0 :(得分:1)
如果您想按名称递增:
var hiddenInputs = document.getElementsByName("Q[]");
编辑:
for (var i = 0; i <= hiddenInputs.length; i++) {
hiddenInputs[i].value = i + 1;
}
减量具有相同的逻辑。现在,hiddenInput(DOM元素)的值包含行数
答案 1 :(得分:1)
看看这个jsFiddle:http://jsfiddle.net/pDxnb/1/
它肯定会给你一些指示,因为这行现在实际上是明显添加的。 (我猜这里的行数不是问题)
问题是并且仍然是,您要将空单元格添加为一行。我已将cell2添加到表中,我们可以看到事情正在发生。
var cell2 = row.insertCell(1);
cell2.appendChild(element1);
cell2.innerHTML = rowCount +1;
我所做的调试也是:
alert(rowCount);
你应该能够为自己找出休息时间。如果您需要更多帮助,请在下面发表评论。
提示强>
也许最好每次添加一行时增加最高ID,并且不要担心删除。这样你就永远不会拥有相同的ID