<table class="privilage">
<caption> These are the default users for institution </caption>
<thead>
<tr>
<th>Users Name</th>
<th>User Id</th>
<th>Password</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name='DefaultUser[]' value='' ><br></td>
<td><input type="text" name='DefaultUser_UserName[]' value=''></td>
<td><input type="password" name='DefaultUser_Password[]'></td>
</tr>
<div id="New_User"></div>
</tbody>
</table> <table>
<tr>
<td><input type="button" name="Add_New_User" value="Add new User" onclick="addRow()"></td>
</tr>
</table>
上面的HTML有一个名为New_User的div,我要求下面的javascript打印到该div的innerHTML,但是它打印到其他地方。
function addRow()
{
var d= document.getElementById("New_User");
d.innerHTML+="<tr><th><input type='text' name='DefaultUsers' value=''/> Manager<br></th><th><input type='text' name='UserName' value=''/></th><th><input type='password' name='Password'/></th></tr>";
}
我只需要将这些新行添加到'privilage'表中。 欢迎任何考虑和帮助。 在此先感谢。
答案 0 :(得分:2)
遗憾的是,您的HTML DOM结构无效。您无法像div
那样在tbody
内添加tbody
标记。 tr
只能包含New_User
个标记。
将ID tbody
提供给您的{{1}}代码,您的脚本就可以使用。
答案 1 :(得分:1)
您实际上可以在表格中添加新行,而不会在其中添加额外的Div。您可以使用JS内部函数来实现此目的。
另请从 tbody 中删除<div id="New_User"></div>
,这会使您的DOM结构无效。
这样做,工作演示:http://jsfiddle.net/epinapala/QPY6b/5/,
尽管在表格中添加新属性id =“tableID”!
function addRow() {
var tableID = "tableID";
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "text";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
cell2.appendChild(element2);
var cell3 = row.insertCell(2);
var element3 = document.createElement("input");
element3.type = "text";
cell3.appendChild(element3);
}
答案 2 :(得分:1)
这可能是你想要的...... http://jsfiddle.net/ztnMk/
<table class="privilage">
<caption> These are the default users for institution </caption>
<thead>
<tr>
<th>Users Name</th>
<th>User Id</th>
<th>Password</th>
</tr>
</thead>
<tbody id="New_User">
<tr>
<td><input type="text" name='DefaultUser[]' value='' ><br></td>
<td><input type="text" name='DefaultUser_UserName[]' value=''></td>
<td><input type="password" name='DefaultUser_Password[]'></td>
</tr>
<!-- YOUR NEW TR GOES HERE... -->
</tbody>
这里是JS:
function addRow(){
var d= document.getElementById("New_User");
d.innerHTML+="<tr><th><input type='text' name='DefaultUsers' value='Manager'/> </th><th><input type='text' name='UserName' value=''/></th><th><input type='password' name='Password'/></th></tr>";
}
希望这会有所帮助!
答案 3 :(得分:1)
用带有id的tr替换div并将innerHTML粘贴到其中。在执行此操作之前,请从内部html中删除tr标记。
你可能必须从头开始在你的tr中放入3个空单元格;您也可以从头开始将tr的高度设置为0。然后在tr中粘贴innerHTML之后,您可以删除高度,如下所示:
document.getElementById("myTr").style.height = "";
答案 4 :(得分:0)
我做了一些更改,例如,将你的div移出所有表格,
<table class="privilage">
<caption> These are the default users for institution </caption>
<thead>
<tr>
<th>Users Name</th>
<th>User Id</th>
<th>Password</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" name='DefaultUser[]' value='' ><br></td>
<td><input type="text" name='DefaultUser_UserName[]' value=''></td>
<td><input type="password" name='DefaultUser_Password[]'></td>
</tr>
</tbody>
</table>
<div id="New_User"></div>
<table>
<tr>
<td><input type="button" name="Add_New_User" value="Add new User" onclick="addRow()"></td>
</tr>
</table>
这是在添加用户按钮之前在第一个底部添加新行。请查看此fiddle