// -> prev: 获取上一个哥哥元素节点
// -> 首先获取当前元素的上一个哥哥元素,判断是否为元素节点,不是的话基于当前的继续找到上面的哥哥节点..
// 直到找到哥哥元素节点为止,如果没有哥哥元素节点,则返回null
function prev(curEle) {
if (flag) {
return curEle.previousElementSibling;
}
var pre = curEle.previousSibling;
while (pre && pre.nodeType !== 1) {
pre = pre.previousSibling;
}
return pre;
}
// -> next: 获取下一个弟弟元素节点
function next(curEle) {
if (flag) {
return curEle.nextElementSibling;
}
var nex = curEle.nextSibling;
while (nex && nex.nodeType !== 1) {
nex = nex.nextSibling;
}
return nex;
}
// -> prevAll: 获取所有的哥哥元素节点
function prevAll(curEle) {
var ary = [];
var pre = this.prev(curEle);
while (pre) {
ary.unshift(pre);
pre = this.prev(pre);
}
return ary;
}
// -> nextAll: 获取所有的弟弟节点
function nextAll(curEle) {
var ary = [];
var nex = this.next(curEle);
while (nex) {
ary.push(nex);
nex = this.next(nex);
}
return ary;
}
// -> sibling: 获取相邻的两个元素节点
function sibling(curEle) {
var pre = this.prev(curEle);
var nex = this.next(curEle);
var ary = [];
pre ? ary.push(pre) : null;
nex ? ary.push(nex) : null;
return ary;
}
// -> siblings: 获取所有的兄弟元素节点
function siblings(curEle) {
return this.prevAll(curEle).concat(this.nextAll(curEle));
}
// -> index: 获取当前元素的索引
function index(curElem) {
return this.prevAll(curElem).length;
}
// -> firstChild: 获取第一个元素子节点
function firstChild(curElem) {
var childrenNodes = this.children(curElem);
return childrenNodes.length > 0 ? childrenNodes[0] : null;
}
// -> lastChild: 获取最后一个元素子节点
function lastChild(curElem) {
var childrenNodes = this.children(curElem);
return childrenNodes.length > 0 ? childrenNodes[childrenNodes.length - 1] : null;
}
封装: 获取兄弟元素系列方法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- jQuery.parent(expr)找父亲节点,可以传入expr进行过滤,比如$("span").parent(...
- 获取兄弟节点 btn.nextElementSibling: 获取当前节点的下一个兄弟节点兼容性: 支持IE9和其...
- 在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中...