先获取当前对象,再根据对象去获取上一个兄弟节点和下一个兄弟节点
prev()
定义和用法
prev()
获得匹配元素集合中每个元素紧邻的前一个同胞元素,通过选择器进行筛选是可选的。
prev(selector)
参数描述
selector
字符串值,包含用于匹配元素的选择器表达式。
--说明:如果给定一个表示
DOM
元素集合的
jQuery
对象,prev()
方法允许我们在
DOM
树中搜索这些元素的前一个同胞元素,并用匹配元素构造一个新的
jQuery
对象。
next()
定义和用法
next()
获得匹配元素集合中每个元素紧邻的同胞元素。如果提供选择器,则取回匹配该选择器的下一个同胞元素。
next(selector)
参数描述
selector
字符串值,包含用于匹配元素的选择器表达式。
--说明:如果给定一个表示
DOM
元素集合的
jQuery
对象,next()
方法允许我们搜索
DOM
树中的元素紧跟的同胞元素,并用匹配元素构造新的
jQuery
对象。
示例:
<!--HTML代码-->
<div id="div1">111</div>
div id="div2">222</div>
div id="div3">333</div>$("#div2")prev()attr("id"); //获取div2同级的上一个div的id,值为div1
$("#div2")next()attr("id"); //获取div2同级的下一个div的id,值为div3
红黑树也是一种自平衡的 二叉搜索树 。
和上述4棵红黑树等价的4阶(2-3-4)B树,如下图
前面我们说了红黑树是一个自平衡的二叉搜索树,所以在设计上红黑树需要继承二叉搜索树的,而且我们需要在Node增加一个新的属性color来记录节点的颜色。
为了方便后面的添加、删除,我们增加一些辅助方法。
还需要增加一个获取兄弟节点的方法。
添加节点的父节点为 RED
添加节点的父节点为 RED
添加节点的父节点为 RED
红黑树等价于4阶B树, B树中真正被删除的必定都在叶子节点中,也就是B树的最后一层。 而最后一层的元素只会有如下四种情况
直接删除,不需做任何处理
比如删除上图中17/33/50/72红色节点,直接删除即可,并不会影响红黑树的5条性质。
可以分为3种情况:
上图3棵树中,BLACK叶子节点88,它的sibling节点都是黑色。
在节点数量固定时,左右子树的高度越接近,树就越平衡。
看到上图依然会有人有疑问:虽然等价的4阶B树高度比较低,但是对应的红黑树展开后,高度依然很高,这又怎么解释呢?
红黑树也是二叉搜索树,时间复杂度和树高相关的。而红黑树的最大高度=2log2(n+1),依然是O(logn)级别,所以搜索、删除、添加的时间复杂度是O(logn)级别的。
首先是自己的所有后代: $("#b")find("")
然后是自己的所有弟弟:$("#b")nextAll()
接着是弟弟们的所有后代:$("#b")nextAll()find("")
然后是自己所有祖先的弟弟(父亲的弟弟、祖父的弟弟……):$("#b")parents()nextAll()
最后是所有祖先的弟弟们的所有后代:$("#b")parents()nextAll()find("")
首先给 span 设定一个 id(或者 class,这是为了方便 jQuery 获取),例如 span#span。
其次,兄弟节点是单个还是多个,这里例子给出的是 span 的下一个。
$(function(){$("#span")click(function(){
var $this = $(this);
// 获取 span 的下一个节点 B
// 如果需要获取 span 兄弟节点是上一个的话,可以使用 prev
// 如果是多个的话,需要使用 siblings,详细参考 jQuery api 手册
var B = $thisnext();
if( $thishasClass("A") ){ // 判断是否有 A class
$thisremoveClass("A")addClass("C");
Bhide();
}else{
$thisremoveClass("C")addClass("A");
Bshow();
}
});
});
仅供参考
PS 下次提问记得设定分类,否则可能没人回答哦~
节点至少拥有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(或空):浅拷贝,只复制节点本身
自己数就行,
HTREEITEM hItem = m_TreeGetSelectedItem();
in nCount = 0;
while(hItem)
{
nCount ++;
hItem = m_TreeGetParentItem(hItem);
}
这些jquery的一些查找方法:可以看看
jQueryparent(expr) //找父元素
jQueryparents(expr) //找到所有祖先元素,不限于父元素
jQuerychildren(expr) //查找所有子元素,只会找到直接的孩子节点,不会返回所有子孙
jQuerycontents() //查找下面的所有内容,包括节点和文本。
jQueryprev() //查找上一个兄弟节点,不是所有的兄弟节点
jQueryprevAll() //查找所有之前的兄弟节点
jQuerynext() //查找下一个兄弟节点,不是所有的兄弟节点
jQuerynextAll() //查找所有之后的兄弟节点
jQuerysiblings() //查找兄弟节点,不分前后
jQueryfind(expr) //跟jQueryfilter(expr)完全不一样,jQueryfilter(expr)是从初始的
jQuery对象集合中筛选出一部分,而jQueryfind()的返回结果,不会有初始集中
筛选出一部分,而jQueryfind()的返回结果,不会有初始集合中的内容,比如:
$("p")find("span")是从元素开始找,等于$("p span")
简单来看,两种,一种直接根据classname或者Id去获取对应的元素拿到你要的值;
第二种通过定位当前元素,然后通过获取兄弟节点的方式去获取,相关法请自行查阅资料,一查一大把,自己查出来的才能留下更深的印象
以上就是关于怎么用jquery 获取同级div 上一个div的id 跟下一个div的id全部的内容,包括:怎么用jquery 获取同级div 上一个div的id 跟下一个div的id、红黑树(Red Black Tree)、使用jquery查找某个元素之后的所有满足条件元素(包括兄弟节点、子节点和无关节点)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)