
先通过父元素的子元素找到含自己在内的“兄弟元素”,然后判断剔除自己。
function siblings(elem) {var a = [];
var b = elemparentNodechildren;
for(var i =0,i<blength;i++) {
if(b[i] !== elem) apush(b[i]);
}
return a;
}
节点至少拥有nodeType(节点类型),nodeName(节点名称),nodeValue(节点值)三个基础属性
(1)元素节点---nodeType为1
(2)属性节点---nodeName为2
(3)文本节点---nodeValue为3 (文本节点包含文字、空格、换行等)
2、节点的层级
DOM根据HTML中各节点的不同作用,可将其分别划分为标签节点(元素节点)、文本节点和属性节点
(1)根节点:<html>就是根节点,有且只有一个
(2)父节点:一个节点的上级节点
(3)子节点:一个节点的下级节点
(4)兄弟节点:具有相同父节点的节点
二、节点 *** 作
1、获取父节点
elementparentNode
2、获取子节点
(1)elementchildNodes:获得的是当前元素的所有子节点的集合(所有类型的子节点)
(2)elementchildren:是一个可读的属性,返回所有子元素节点
(3)firstChild:获取第一个子节点
(4)lastChild:获取最后一个子节点
(5)firstElementChild:获取第一个元素子节点
(6)lastElementChild:获取最后一个子元素节点
3、获取兄弟节点
(1)nextSibling:获取下一个兄弟节点
(2)previousSibling:获取上一个兄弟节点
(3)nextElementSibling:获取下一个兄弟元素(标签)节点
(4)previousElementSibling:获取前一个兄弟元素节点
<body>
<div class="demo">
<div class="box">
<h2>一二三四五</h2>
<span class="child">上山打老虎</span>
<p>注意!(保护国家保护动物)</p>
</div>
</div>
<div>
<ul>
<li id="l1">红楼梦</li>
<li>水浒传</li>
<li>三国演义</li>
<li>西游记</li>
</ul>
</div>
<script>
var child = documentquerySelector('child')
consolelog(childparentNode);
var ul = documentquerySelector('ul');
var lis = ulquerySelectorAll('li');
consolelog(lis);
consolelog("通过childNodes获得的子节点",ulchildNodes);
consolelog("children",ulchildren);
consolelog("ul的子节点",ulchildNodes);
consolelog("ul第一个子节点的类型:",ulchildNodes[0]nodeType);
consolelog("ul的第二个字节点类型:",ulchildNodes[1]nodeType);//1是元素,也叫标签
consolelog("ul的第一个子节点",ulfirstChild);
consolelog("ul的最后一个子节点:",ullastChild);
consolelog("ul的第一个子元素节点",ulfirstElementChild)
consolelog("ul的最后一个子元素节点",ullastElementChild)
var span = documentquerySelector('child');
consolelog("span的兄弟节点",spannextSiblingnextSibling)
consolelog("span的前一个兄弟节点",spanpreviousElementSibling)
</script>
</body>
登录后复制

4、创建节点
(1)doumentwrite():若页面加载完毕,再次调用该方法导致页面重绘
(2)elementinnerHTML:将节点加入到元素中,导致页面部分重绘
(3)documentcreateElement():创建节点结构清晰、效率不高
5、添加和删除节点
(1)appendChild():将节点添加到指定父节点的已有子节点的末尾
(2)insertBefore():将节点添加到指定父节点的已有子节点的前面
(3)removeChild(child):删除一个指定的节点。返回值为删除的节点
6、克隆节点
cloneNode(true/false):复制节点
(1)true:深拷贝,复制节点本身和所有子节点
(2)false(或空):浅拷贝,只复制节点本身
先给你看下面两段代码:
<div id="div1">test!</div><script>
consolelog(documentgetElementById("div1")); //这个能够获得值
</script><script>
consolelog(documentgetElementById("div1")); //这个不能获得值!
</script>
<div id="div1">test!</div>
看出原因没有?当js代码是先于html运行时,是获取不到DOM元素的!因为这时候该DOM元素尚未加载到内存,相当于不存在!
要想实现js代码放到任何位置都能获得DOM元素,就要保证代码在页面完全加载完毕后才开始运行,比如:
<script>windowonload=function(){ //网页完全加载完毕才会触发这个事件
consolelog(documentgetElementById("div1")); //这时候就能获得了
}
</script>
<div id="div1">test!</div>
以上就是关于怎么使用JavaScript获取兄弟节点全部的内容,包括:怎么使用JavaScript获取兄弟节点、javascript如何表示根节点、javascript 如何获得html DOM节点的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)