js节点,阻止事件冒泡

Posted wangmeihao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘);};

 

 

 

以上是关于js节点,阻止事件冒泡的主要内容,如果未能解决你的问题,请参考以下文章

js节点,阻止事件冒泡

js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件

js阻止冒泡和默认事件(默认行为)详解

js函数中 如何阻止事件冒泡

js的事件冒泡和事件捕获

jquery阻止事件冒泡