利用父子级来修改数据:previousSibling,parentNode,nextSibling

function adit(obj) {
//var demoA = document.getElementById("operation");
var demoA = obj;
var a = demoA.parentNode.previousSibling;//这个parentNode找到的是<td>标签的同一级父级点,

                      //也就是其他两个<td>加空白,

                      //previousSibling(这个是向上找同一父级点的子节点)
while(a != null) {
if(a.nodeType == 1) {
a.innerHTML = '<input type="text" value="'+a.innerText+'">';
}
a = a.previousSibling;
}
demoA.parentNode.innerHTML = '<a href="#" οnclick="save(this)" id="operation">save</a>';
}

function save(obj) {
//var demoA = document.getElementById("operation");
//用obj自定义的来代替document.getElementById("operation")
var demoA = obj;
var a = demoA.parentNode.previousSibling;
while(a != null) {
if(a.nodeType == 1) {
var x = getFirstChild(a);
a.innerHTML = x.value;
}
a = a.previousSibling;
}
demoA.parentNode.innerHTML = '<a href="#" id="operation" οnclick="adit(this)">edit</a>';
}

//参数:输入所有的节点包括空白

//返回值:找到下一节点不是空白的节点
function getFirstChild(dom,nodeType) {
nodeType = nodeType || 1;//默认如果不输入nodeType,则nodeType值为1;也就是不是空白节点;
var x = dom.firstChild;
while(x.nodeType != nodeType) {
x = x.nextSibling;//找x的下一个节点
}
return x;
}

<html>

<head>

<meta charset="utf-8">
</meta>
</head>
<body>
<table border="1" style="width:100%">
<tr>
<th>姓名</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<tr>
<td>operation</td>
<td>operation@qq.com</td>
<td><a href="#" id="operation" οnclick="adit(this)">edit</a></td>
</tr>
<tr>
<td>operation</td>
<td>operation@qq.com</td>
<td><a href="#" id="operation" οnclick="adit(this)">edit</a></td>
</tr>
<tr>
<td>operation</td>
<td>operation@qq.com</td>
<td><a href="#" id="operation" οnclick="adit(this)">edit</a></td>
</tr>
<tr>
<td>operation</td>
<td>operation@qq.com</td>
<td><a href="#" id="operation" οnclick="adit(this)">edit</a></td>
</tr>
</table>
</body>
<script src="js/main.js">
</script>
</html>

 

效果图

 

转载于:https://www.cnblogs.com/wang-liang/p/6748114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值