在使用DOM过程中发现一个问题: 使用nextSibling 属性返回指定节点之后紧跟的节点,在相同的树层级中。被返回的节点以 Node 对象返回。 this.arrow = this.screen.nextSibling; this.left = this.arrow.children[0]; // undefined this.right = this.arrow.children this.left = this.arrow.children[0]; // 正常获取第一个子节点 this.right = this.arrow.children[1]; // 正常获取第2个子节点 nextSibling 属性与nextElementSibling属性的差别: nextSibling属性返回元素节点之后紧跟的兄弟节点(包括文本节点、注释节点即回车、换行、空格、文本等等); nextElementSibling
var pimg = node.parentNode.firstChild; var inpu = node.parentNode.nextSibling node.parentNode.firstChild; var pimg1=node.parentNode.childNodes[1]; var inpu = node.parentNode.nextSibling
使用nextSibling属性返回指定节点之后的下一个兄弟节点,(即:相同节点树层中的下一个节点)。 nextSibling属性与nextElementSibling属性的差别: nextSibling属性返回元素节点之后的兄弟节点(包括文本节点、注释节点即回车、换行、空格、文本等等); nextElementSibling 换行) <input type="text" name="username" onblur="checkName();" /> 1 解决方法1:去掉中间多余的内容,input的nextSibling
> </bod 该对象的结构表面上看,div的nextSibling只有2项——两个input节点。 中就需要这样写:nextSibling.nextSibling了。 opera和safari对nextSibling的处理方式与FF一致 2:previousSibling属性 该属性与nextSibling属性的作用正好相反。 3:通过nextSibling或者 previousSibling所获得的HTML标签元素对象的属性问题 一般先通过nextSibling.nodeName来获知其标签名,或者通过nextSibling.nodeType 来获知其标签类型,然后,如果该nextSibling.nodeName = #text,则通过nextSibling.nodeValue来获知其文本值;否则,可以通过nextSibling.innerHTML
JavaScript中的nextSibling和previousSibling和作用类似于jquery的next()和prev(),都是获取下一个/上一个同胞元素,如果下一个同级节点不存在,则此属性返回值是 ">我是p
我是spandocument.write("
document.write("
=nil{ links=visit(links,n.FirstChild) }else if n.NextSibling! =nil{ //n=n.NextSibling links=visit(links,n.NextSibling = nil; c = c.NextSibling { links = visit(links, c) } return links } = nil; c = c.NextSibling { res = count(res, c) } return res } /* 练习 = nil; c = c.NextSibling { links = visit4(links, c) } return links }
返回节点的父节点
childNodes 返回子节点集合,childNodes[i]
firstChild 返回节点的第一个子节点,最普遍的用法是访问该元素的文本节点
lastChild 返回节点的最后一个子节点
nextSibling previousSibling 上一个节点
var obj=document.getElementById("news");
var str=obj.lastChild.firstChild.nextSibling.nextSibling.innerHTML type1+"
type2:"+type2+"
name1:"+name1+"
str:"+str;
document.getElementById("nodeList").nextSibling.innerHTML img.setAttribute("src","images/dog.jpg");
img.setAttribute("alt","我和狗狗一起活下来");
img.nextSibling.innerHTML img.setAttribute("src","images/mai.jpg");
img.setAttribute("alt","灰霾来了怎么办");
img.nextSibling.innerHTML
-1) { subtotal = subtotal + '.00' } // 通过按钮的父级节点获取下一个兄弟元素即总价节点 var subTdElement = btnTdElement.nextSibling.nextSibling var targetButton = event.target // 操作与之关联的input元素 var inputElement = targetButton.nextSibling.nextSibling === -1) { subtotal = subtotal + '.00' } var subTdElement = btnTdElement.nextSibling.nextSibling subtotal = subtotal + '.00' } var subTdElement = btnTdElement.nextSibling.nextSibling subtotal = subtotal + '.00' } var subTdElement = btnTdElement.nextSibling.nextSibling
==node) }, next(node){ let x = node.nextSibling while(x && x.nodeType === 3){ x = x.nextSibling } return x } }  6. dom.previous(node) 用于获取哥哥元素 ==node) }, next(node){ let x = node.nextSibling while(x && x.nodeType === 3){ x = x.nextSibling } return x }, previous(node){ let x = ==node) }, next(node){ let x = node.nextSibling while(x && x.nodeType === 3){
some text
target, function (key, value) { var parent = value.parentNode; var nextNode = $.get_nextsibling target = $(sele); var $this = this; $this.each(function (k, v) { var nextNode = $.get_nextsibling // 返回所有找到的 this.each(function (key, value) { var temp = kjQuery.get_nextsibling : function (n) { var x = n.nextSibling; while (x ! = 1) { x = x.nextSibling; } return x; }, get_previoussibling: function
$$nextSibling)) { current = current. $$nextSibling) { next = current.$$nextSibling; } while (!next && current ! $$nextSibling)) { current = current. $$nextSibling)) { current = current. $$nextSibling)) { current = current.
typedef struct CSNode { int val; CSNode *firstchild, *nextsibling; } CSNode, *CSTree; int dfs(CSTree root->firstchild) return 1; else { int left = dfs(root->firstchild); int right = dfs(root->nextsibling
,如果没有子元素,则返回null 获取指定节点的最后一个子元素 var d = document.getElementById('d') d.firstChild.nextSibling.textContent 获取指定元素的前面相邻兄弟元素 获取指定元素的后面相邻兄弟元素 var d = document.getElementById('d') // 获取下一个兄弟元素(获取到空白节点) console.log(d.nextSibling ) // 获取到script脚本 console.log(d.nextSibling.nextSibling) console.log(d.previousSibling) console.log(d.previousSibling.previousSibling
= 0; pChild = pChild->NextSibling()) { dump_to_stdout( pChild ); } } voidsearch(TiXmlNode* pParent) = 0; pChild = pChild->NextSibling()) { search(pChild); } } voidsearch2(TiXmlNode* pParent)//另一种方法: = 0; pChild = pChild->NextSibling())//遍历一个节点的所兄弟节点,记着单词sibling是兄弟, 姐妹的意思 //也就是说FirstChild()和NextSibling = 0; pChild = pChild->NextSibling()) { dump_to_stdout( pChild ); } } void search(TiXmlNode* pParent = 0; pChild = pChild->NextSibling()) //遍历一个节点的所兄弟节点,记着单词sibling是兄弟, 姐妹的意思 //也就是说FirstChild()和NextSibling
ret = []; // 遍历this上的所有dom元素 this.each(function() { // 在遍历当前dom元素下面所有的兄弟元素 for(var node = this.nextSibling ; node ; node = node.nextSibling){ // 如果当前兄弟节点,为元素节点 // 即为结果,将其添加ret内,并结束循环 if(node.nodeType nextAll: function() { var ret = [], node; this.each(function() { for(node = this.nextSibling; node ; node = node.nextSibling){ if(node.nodeType === 1) ret.push(node); } }); return itcast(itcast.unique ; source = itcast(source); this.each(function(dom, i) { nextSibling = dom.nextSibling; source.each
childNodes 返回一个数组,这个数组又指定元素节点的子节点构成 firstChild 返回第一个子节点 lastChild 返回最后一个子节点 parentNode 返回一个给定节点的父节点 nextSibling ("访问 ul 里的 li 的兄弟节点") console.log(ul_childnodes.childNodes) console.log(ul_childnodes.childNodes[1].nextSibling ) console.log(ul_childnodes.childNodes[1].nextSibling.nodeName) console.log(ul_childnodes.childNodes[ (n){ var x = n.nextSibling; while(x.nodeType ! = 1){ console.log(x.nodeName) console.log(x.nodeType) x = x.nextSibling } return x; } function Hidden
<stdlib.h> struct TreeNode { int value; struct TreeNode* firstChild; struct TreeNode* nextSibling TreeNode*)malloc(sizeof(struct TreeNode)); node->value = value; node->firstChild = NULL; node->nextSibling else { struct TreeNode* sibling = node->firstChild; while (sibling->nextSibling = NULL) { sibling = sibling->nextSibling; } sibling ->nextSibling = child; } } int nextChar = treeStr[*index]; if (