怎么用jquery 获取同级div 上一个div的id 跟下一个div的id

怎么用jquery 获取同级div 上一个div的id 跟下一个div的id,第1张

先获取当前对象,再根据对象去获取上一个兄弟节点和下一个兄弟节点

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查找某个元素之后的所有满足条件元素(包括兄弟节点、子节点和无关节点)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9340130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存