var chils= s.childNodes; //得到s的全部子节点
var par=s.parentNode; //得到s的父节点
var ns=s.nextSbiling; //获得s的下一个兄弟节点
var ps=s.previousSbiling; //得到s的上一个兄弟节点
var fc=s.firstChild; //获得s的第一个子节点
var lc=s.lastChile; //获得s的最后一个子节点
JS获取节点父级,子级元素
先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。
JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当作DOM元素
1 2 3 4 | <div id= "test" > <div></div> <div></div> </div> |
原生的JS获取ID为test的元素下的子元素。
可以用:
1 | var a = docuemnt.getElementById( "test" ).getElementsByTagName_r( "div" ); |
这样是没有问题的
此时a.length=2;
但是如果我们换另一种方法
1 | var b =document.getElementByIdx_x( "test" ).childNodes; |
此时b.length 在IE浏览器中没问题,其依旧等于2,但是在FF浏览器中则会使4,是因为FF把换行也当做一个元素了。
所以,在此,我们就要做处理了,需遍历这些元素,把元素类型为空格而且是文本都删除。
1 2 3 4 5 6 7 8 | function del_ff(elem){ var elem_child = elem.childNodes; for ( var i=0; i<elem_child.length;i++){ if (elem_child[i].nodeName == "#text" && !/\s/.test(elem_child.nodeValue)) {elem.removeChild(elem_child) } } } |
上述函数遍历子元素,当元素里面有节点类型是文本并且文本类型节点的节点值是空的。就把他删除。
查看更多关于JS/JQuery获取当前元素的上一个/下一个兄弟级元素等元素的方法的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did22