如何使用DOM更改HTML表第一行中的按钮?(添加和删除行DOM)
How to change the button in the first row of a HTML table using DOM ? (Adding and removing rows by DOM)
在下面的小提琴,我试图添加和删除表行使用DOM。根据脚本,每行的最后一个字段将有一个删除按钮。但我想在第一个字段的删除按钮是添加按钮,这是表外。
只有第一行中的按钮应该是添加行按钮。行的其余部分应该有删除按钮。我该怎么做呢?
jsfiddle - http://jsfiddle.net/7AeDQ/33/
Javascriptfunction deleteRow(row)
{
var i=row.parentNode.parentNode.rowIndex;
document.getElementById('POITable').deleteRow(i);
}
function insRow()
{
console.log( 'hi');
var x=document.getElementById('POITable');
var new_row = x.rows[1].cloneNode(true);
var len = x.rows.length;
new_row.cells[0].innerHTML = len;
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
x.appendChild( new_row );
}
HTML
<div id="POItablediv">
<input type="button" id="addmorePOIbutton" value="Add More POIs" onclick="insRow()"/>
<table id="POITable" border="1">
<tr>
<td>POI</td>
<td>Latitude</td>
<td>Longitude</td>
<td>Delete?</td>
</tr>
<tr>
<td>1</td>
<td><input size=25 type="text" id="latbox"/></td>
<td><input size=25 type="text" id="lngbox" readonly=true/></td>
<td><input type="button" id="delPOIbutton" value="Delete" onclick="deleteRow(this)"/></td>
</tr>
</table>
通过克隆现有行(和现有按钮)创建新行。如果您希望第一行中的按钮的行为与其他行不同,则需要在insRow函数中重写已更改的行为(就像您目前对输入id所做的那样)。
试着把你的代码改成:
HTML:...
<tr>
<td>1</td>
<td><input size=25 type="text" id="latbox"/></td>
<td><input size=25 type="text" id="lngbox" readonly=true/></td>
<td><input type="button" id="delPOIbutton" value="Add More POIs" onclick="insRow()"/></td>
</tr>
...
JS:
function deleteRow(evt) {
var i = evt.target.parentNode.parentNode.rowIndex;
document.getElementById('POITable').deleteRow(i);
}
function insRow() {
var x = document.getElementById('POITable');
var new_row = x.rows[1].cloneNode(true);
var len = x.rows.length;
new_row.cells[0].innerHTML = len;
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
var button = new_row.cells[3].getElementsByTagName('input')[0];
button.value = "Delete row";
button.onclick = function(it) {deleteRow(it)};
x.appendChild( new_row );
}
我猜你的表将动态生成,这就是为什么你有这个问题。
一个jQuery解决方案,正如你所标记的:
$(function(){
$("#POITable tr").eq(1).find('td:last').html('<input type="button" id="addmorePOIbutton" value="Add More POIs" onclick="insRow()"/>');
});
演示:http://jsfiddle.net/7AeDQ/59/
你的删除按钮也会出现多次,所以不要使用固定的id
作为它,因为你使用:
<input type="button" id="delPOIbutton" value="Delete" onclick="deleteRow(this)"/>
使用class
或id="delPOIbutton-1"
, id="delPOIbutton-2"
等增量id
相关文章:
- 如何使用jQuery从DOM中删除所有单选按钮元素
- 在Node Webkit应用程序中从DOM单击按钮时运行批处理文件
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 如何在单击按钮时删除 DOM 元素
- 点击jquery按钮后,是否可以添加相同的现有dom结构
- 在p5-dom上单击提交按钮后,我如何删除该按钮
- 使用DOM javascript包含文本和图片的按钮
- 如何使用JQuery检索完整的DOM结构,其中输入只是一个按钮
- Chrome扩展程序获取DOM文本并在弹出窗口中显示.html然后单击按钮
- 从新的 dom 按钮调用内容脚本函数
- 为什么我的 HTML 按钮刷新页面?/为什么我不能让我的新 HTML DOM 元素插入到我的页面中
- 如果我知道按钮的 id,如何使用 javascript 设置 DOM 按钮的标题
- HTML/DOM:鼠标事件更改按钮
- 实现一个重置按钮来收回 jQuery 中已删除的 DOM 元素
- Javascript对按下后退按钮时丢失的dom的更改
- 按钮在重新添加到 DOM 时保持活动状态
- Access DOM元素“;onSubmit”;在AngularJS 2.0中使用Jquery点击按钮
- 使用DOM按钮更改Select HTML元素中的Selected Value单击select2.js
- JavaScript和DOM按钮事件处理
- 使用外部 dom 按钮在 Highchart 中向下和向上钻取的问题.js