js中如何选择同一级别的元素,但不是兄弟元素

js中如何选择同一级别的元素,但不是兄弟元素,第1张

我的思路是:

var rank = $(elem)parents()length; // 获取元素等级

var sibling = $("body > > …… > "); // 获取同级元素,星号的数量应该等于 rank - 2

大概思路就是这样了,具体的还需要你自己研究研究。

利用javascript

写一个在页面点击加减按钮实现数字的累加。

简略的html大概如此。看得懂就好不要在意这些细节啊

<input

type="button"

value="+"

onclick="jia(this)"

/>

<label

class="num">0</label>

<input

type="button"

value="-"

onclick="jian(this)"

/>

样子是这样的

javascript

代码如下

<script

type="text/javascript">

function

jia(a)

{

var

nextnode

=

anextElementSibling;//获取下一个节点

alert(nextnodeinnerHTML);

var

a

=

parseInt(nextnodeinnerHTML)

a

+=

1;

nextnodeinnerHTML

=

a;

}

function

jian(a)

{

var

previousnode

=

apreviousElementSibling;

var

a

=

parseInt(previousnodeinnerHTML)

a

-=

1;

a

=

a

>

0

a

:

0;

previousnodeinnerHTML

=

a;

}

</script>

解释一下:

function

jian(a)和

function

jia(a)就是当前点击的对象了。在onclick事件接的方法里加了this;

-

nextElementSibling

获取当前节点的下一个节点(获得下一个兄弟节点)

-

previousElementSibling

获取当前节点的上一个节点

注意:

IE将跳过在节点之间产生的空格文档节点(如:换行字符),而Mozilla不会这样——FF会把诸如空格换行之类的排版元素视作节点读取,因此,在ie

中用nextSibling便可读取到的下一个节点元素,在FF中就需要这样写:nextElementSibling了。

上面的解释的意思的使用

nextElementSibling

和previousElementSibling

获得下一个兄弟节点和上一个兄弟节点,可以去掉换行,空格上面之类的,直接找到我们标签元素。但是下面的两个

nextSibling

previousSibling

也是得下一个兄弟节点和上一个兄弟节点的,只是在IE中好用

--------------------关键字解释

parseInt

转化功能。

a

=

a

>

0

a

:

0;----三元表达式。

节点至少拥有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(或空):浅拷贝,只复制节点本身

那肯定是你的代码有问题,你在这里说的天花乱坠没见到代码也是没卵用,因为你这里说1,代码里却可能是2,就像你去看医生,明明很痛,却跟医生说有点痛,然后又不让医生检查,只顾着问医生诊断结果和医治办法,就是神医也办不到啊。

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script>

windowaddEventListener('load',function(){

// 点击t-1时同时触发t-2点击

documentgetElementById('x-1')addEventListener('click',function(e){

consolelog(etargetid);

// 创建事件对象

var event = documentcreateEvent('HTMLEvents');

eventinitEvent('click', false,false);

eventeventType = 'message';

// 把事件触发信息传递给兄弟节点

etargetnextElementSiblingdispatchEvent(event);

});

documentgetElementById('x-2')addEventListener('click',function(e){

consolelog(etargetid);

});

});

</script>

</head>

<body>

<ul>

<li id="x-1">t-1</li>

<li id="x-2">t-2</li>

</ul>

</body>

</html>

jquery获取当前节点的前一个节点步骤如下:

1、打开html开发工具,新建一个html代码页面。

2、在html页面创建三个p标签,然后给这三个p标签设置不同的内容。

3、引入jquery库。在title标签后面引用下载好的jqueryjs文件。

4、 在jquery引用库标签后面新建一个script标签,然后在这个标签里面添加一个DOM加载完成后执行函数。

5、在DOM加载完成后执行函数里面添加点击p标签时获取当前元素的上一个元素对象。

6、保存html代码后使用浏览器打开,然后点击p标签d出框就会显示当前点击标签的上一个标签的内容。

以上就是关于js中如何选择同一级别的元素,但不是兄弟元素全部的内容,包括:js中如何选择同一级别的元素,但不是兄弟元素、javascript获取dom的下一个节点方法、javascript如何表示根节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/9506925.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存