js节点,阻止事件冒泡

parentNode:父级节点

<div id="a1">父<p id="a2">孩子</p></div>

var i=document。getElementById(‘a2’).parentNode;

console.log('i');//会查找到a2元素的父节点

 

childNodes:子级节点集

<div id="a1">父<p id="a2">孩子</p></div>

var i=document。getElementById(‘a1’).childNodes;

console.log('i');//会查找a1的所有子级节点,回车是一个text节点

 

firstChild:第一个子级节点

var i=document。getElementById(‘a1’).firstChild;

console.log('i');

 

lastChild:最后一个子级节点

var i=document。getElementById(‘a1’).lastChild;

console.log('i');

 

nextSibling:同级下一个节点

var i=document。getElementById(‘a1’).nextSibling;

console.log('i');

 

 

previousSibling:同级上一个节点

var i=document。getElementById(‘a1’).previousSibling;

console.log('i');

 

 

阻止事件冒泡

1.e.stopPropagation();阻止事件分配到其他节点,父级事件不再显示;

<div id=‘d’>点123<p id=‘p’>点我</p></div>

document.getElementById('p').onclick=function(e){alert('1');e.stopPropagation();};//点击点我时会弹框1,加上e.stopPropagation();后点点我时只会出现弹框1

document.getElementById('d').onclick=function(){alert('2');};//点击点123时会弹框2

 

2.return false; js只会阻止默认行为,若有跳转页面将会阻止,jq阻止默认又防止冒泡;

<div id="a">点我<p id="q"><a href="01.html">连接</a></p></div>
document.getElementById('p').onclick=function(e){alert('1');e.stopPropagation();return false;};//点击连接,先出弹框1后跳转01.html页面,加return false;将不再跳转页面

document.getElementById('d').onclick=function(){alert('2');};

 

 

3.event.preventDefault();取消事件的默认动作,若有跳转页面将阻止

 

 

<div id="a">点我<p id="q"><a href="01.html">连接</a></p></div>
document.getElementById('p').onclick=function(e){alert('1');e.preventDefault;};//点击连接,先出弹框1后弹出弹框2,e.preventDefault将不再跳转页面

 

document.getElementById('d').onclick=function(){alert('2');};

 

 

 

posted @ 2020-05-08 11:37  wangmeihao  阅读(362)  评论(0编辑  收藏  举报