如何使用javascript在html中动态添加行
我有一个任务,需要在 HTML 中动态添加一个表格行,其中每行有 2 个文本框,最后一个元素是一个超链接。但是,当我添加一行时,最后一个元素超链接应替换为 标记。如何做到这一点?我
可以添加一行,但无法将最后一个元素更改为 标记,这是我的代码:
HTML 文件
<html>
<head>
<title>Add row</title>
<script language=javascript type=text/javascript src="multiplerows.js"></script>
</head>
<body>
<table id="CPTbl">
<tr>
<td>
<input type="text" name="cpName" value="">
</td>
<td>
<input type="text" name="cpName1" value="">
</td>
<td>
<a href="samle.htm" View Image</a>
</td>
</tr>
<tr>
<td>
<input type="button" value="AddRow" name="AddRowData" onClick="add('CPTbl',1)">
<input type="button" value="Delete Row" name="DeleteAgencyCp" onClick="remove('CPTbl',1);">
</td>
</tr>
</table>
</form></body></html>
我的脚本如下
function add(TableId,replicaterow){
var oMyTable = document.getElementById(TableId);
var oNewRow;
if (oMyTable.rows[replicaterow].style.display=="none"){
if(oMyTable.rows.length==(replicaterow+1)){
oMyTable.rows[replicaterow].style.display="";
}else{
oNewRow = oMyTable.rows[replicaterow].cloneNode(true);
oNewRow.style.display=""
ReInitRow(oNewRow,oMyTable.rows.length);
oMyTable.tBodies[0].appendChild(oNewRow);
}
}else{
oNewRow = oMyTable.rows[replicaterow].cloneNode(true);
ReInitRow(oNewRow,oMyTable.rows.length);
oMyTable.tBodies[0].appendChild(oNewRow);
}
}
function ReInitRow(oNewRow,rowlength){
var flg=true;
if (! oNewRow){return;}
for (var i = 0 ; i < oNewRow.childNodes.length ; i++){
if((oNewRow.childNodes[i].tagName == "INPUT") ||
(oNewRow.childNodes[i].tagName == "SELECT") ||
(oNewRow.childNodes[i].tagName == "TEXTAREA") ||
(oNewRow.childNodes[i].tagName == "textarea"))
{
oNewRow.childNodes[i].name = oNewRow.childNodes[i].name;
if((oNewRow.childNodes[i].tagName == "INPUT") &&
(oNewRow.childNodes[i].type == "text") ||
(oNewRow.childNodes[i].tagName == "TEXTAREA"))
{
oNewRow.childNodes[i].value = "";
}
if(oNewRow.childNodes[i].tagName == "SELECT" && !oNewRow.childNodes[i].multiple ){
oNewRow.childNodes[i].selectedIndex=0;
}
if(oNewRow.childNodes[i].id == "resetList")
{
oNewRow.childNodes[i].options.length=0;
}
if((oNewRow.childNodes[i].type=="hidden")){
flg=false;
oNewRow.childNodes[i].value="0";
}
}
ReInitRow(oNewRow.childNodes[i],rowlength);
}
}
如何替换第三个表数据 (),其中
;?
提前致谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一种相当直接的方法,但是您没有任何有帮助的 id。
您的代码也设置为克隆按钮行。包含输入和超链接的行是第 0 行,而不是第 1 行,至少在 IE 中是这样。您可能会寻找一种更可靠的方法来获取代码中的行引用。
this is a rather blunt way to approach it, but you don't have id's for anything that would help.
also your code is set up to clone the button row. the row with the inputs and the hyperlink is row 0, not row 1, at least in IE. you might look for a more reliable way of obtaining row references in your code.
@Apache - 输入您的原始 HTML 代码:
应该是:
@Apache - type in your original HTML code:
Should be: