jquer节点关系

1:查找:
children([expr]) nextAll([expr) parents([expr])
closest(elole) nextUntil( [ele] [.f]) parentsUntil([ele][.f])
find(elole) offsetParent() prev([expr])
next([expr]) parent([expr]) prevall([expr])
prevUntil([ele][.f]) siblings([expr])
都是方法,因为里面暗含了迭代器了。
children()方法:所有亲儿子节点。就是儿子,孙子不在children()里面。让box的所有儿子变红:
$(’#box’).children().css(‘background-color’,‘red’);
儿子有很多,可以用选择器来表示怎么样的儿子:
$(’#box’).children(‘h3’).css(‘background-color’,‘red’);
还可以用筛选器:
$(’#box’).children(’:odd’).css(‘background-color’,‘red’);
jQuery屏蔽掉了浏览器兼容问题,不存在空文本节点也是儿子了,事实上children()返回的只能是节点,所有的文本都不算做是儿子了。
find()
所有后代元素。和children()不一样,children()返回的是自己亲儿子元素列表,而find()返回的是自己后代所有元素 列表。
$(’#box’).find(‘p’).css(‘background-color’,‘red’);
注意:和children()方法不一样,find()方法里面,必须写参数,表示后代的谁? 说白了find是寻找的意思,就是你要在后代寻找谁。
parent()
亲爸爸。任何元素都有一个亲爸爸。
$(‘p’).parent().css(‘background-color’,‘red’);
parents()
这个元素的所有祖先节点。
siblings()
亲兄弟
$(’.xiaoming’).siblings().css(‘background-color’,‘red’);
同样的jQuery只返回节点元素,对于文本、注释都不视为兄弟。
可以加选择器、帅选器。
$(’.xiaoming’).siblings(’:odd’).css(‘background-color’,‘red’);
排他,再也不用担心写for循环了:
$(this).addClass(‘cur’).sinlings().removeClass(‘cur’);
我加cur,我的兄弟们去cur。
prev()、next()、prevAll()、nextAll()
前一个兄弟、后一个兄弟、前所有兄弟、后所有兄弟。
jQuery屏蔽了所有的不兼容,只选择nodeType=1的元素,不选择文本、注释等等。并且不用for循环了,一次性的到所有东西。

发布了80 篇原创文章 · 获赞 0 · 访问量 3467

猜你喜欢

转载自blog.csdn.net/weixin_43786904/article/details/103778329