this.parentNode.parentNode

本文详细解析了HTML元素之间的父子节点关系,特别是如何通过`parentNode`属性访问和操作这些关系,以实现特定的DOM操作,如在表单中通过事件触发对特定子元素的操作。

父节点的父节点,比如有这样一段

HTML:

<form id="form">

<div id="divA">

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;div id="divB"&gt; &lt;input type="button" value="删除" on<wbr>Click="deleteMe(this.parentNode.parentNode);"&gt;<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><span></span>&lt;/div&gt;</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

</div>

</form>

这样的话,那里面的this.parentNode就是divB,而this.parentNode.parentNode就是divA所谓parentNode就是其上一层节点。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>domcart</title> <style> span{ display: inline-block; border-color:red ; border-style: solid; width: 40px; } table{ border:1px solid green; border-spacing: 0px; font-family:"宋体"; font-size: 16px; margin:auto; } tr{ height: 36px; } th,td{ border: 1px solid green; text-align: center; width: 140px; } </style> <script> window.onload=function(){ var deletebuttons=Array.from(document.getElementsByClassName("deleteitem")); deletebuttons.forEach( function (deletebutton){ deletebutton.onclick=function(){ var tr=this.parentNode.parentNode; tr.remove(); } } ) var increasebuttons=Array.from(document.getElementsByClassName("increase")); increasebuttons.forEach( function(increasebutton){ increasebutton.onclick=function(){ var count=parseInt(this.nextElementSibling.firstChild.nodeValue); count++; this.nextElementSibling.innerHTML=count; var stock=parseInt(this.parentNode.previousElementSibling.firstChild.nodeValue); stock--; this.parentNode.previousElementSibling.innerHTML=stock; var price=parseFloat(this.parentNode.previousElementSibling.previousElementSibling.firstChild.nodeValue); var amount=count*price; this.parentNode.nextElementSibling.innerHTML=amount; //update total var total=0; var amountcells=Array.from(document.getElementsByClassName("amount")); amountcells.forEach( function(amountcell){ var value=parseFloat(amountcell.firstChild.nodeValue); total+=value; } ) } } ) var minusbuttons=Array.from(document.getElementsByClassName("minus")); increasebuttons.forEach( function(minusbutton){ minus.onclick=function(){ var count=parseInt(this.nextElementSibling.firstChild.nodeValue); count--; this.nextElementSibling.innerHTML=count; var stock=parseInt(this.parentNode.previousElementSibling.firstChild.nodeValue); stock++; this.parentNode.previousElementSibling.innerHTML=stock; var price=parseFloat(this.parentNode.previousElementSibling.previousElementSibling.firstChild.nodeValue); var amount=count*price; this.parentNode.nextElementSibling.innerHTML=amount; //update total var total=0; var amountcells=Array.from(document.getElementsByClassName("amount")); amountcells.forEach( function(amountcell){ var value=parseFloat(amountcell.firstChild.nodeValue); total+=value; } ) } } ) } </script> </head> <body> <table> <caption>DomCart</caption> <thead> <th>index</th> <th>nmae</th> <th>price</th> <th>stock</th> <th>quabtity</th> <th>amount</th> <th>delete</th> </thead> <tbody> <tr> <td>1</td><td>huawei mate10</td><td>1000</td><td>20</td><td><button class="increase">+</button> <Span>4</Span> <button class="increase">-</button></td><td>4000</td><td><button class="deleteitem">delete</button></td> </tr> <tr> <td>2</td><td>byd Q8</td><td>500</td><td>20</td><td><button class="increase">+</button> <Span>4</Span> <button class="increase">-</button></td><td>2000</td><td><button class="deleteitem">delete</button></td> </tbody> </table> </body> </html>格式不变,找错误就行
最新发布
11-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值