1.获取节点的编写
1.获取所有的哥哥元素
function prevAll(node) {
//上可以哥哥所有的节点
let prev = node.previousSibling,
//提前创建一个空间存储哥哥标签节点
result = [];
//如果哥哥不等于null.哥哥nodeType===1,
while (prev !== null) {
if (prev.nodeType === 1) {
//获取到的哥哥标签存放到空间存储标签里面
result.unshift(prev);
}
//获取哥哥,后去哥哥的哥哥元素
prev = prev.previousSibling;
}
return result;
}
2.获取所有的弟弟元素
function nextAll(node) {
let result = [],
//获取弟弟的所有节点
next = node.nextSibling;
while (next !== null) {
//如果弟弟的节点类型===1;保存到盒子里面
next.nodeType === 1 ? result.push(next) : null;
//在去找当前找到的弟弟元素所有的节点
next = next.nextSibling;
}
return result;
}
3.获取所有的弟弟元素和哥哥元素
function siblings(node) {
return prevAll(node).concat(nextAll(node));
}
4.获取所有的元素的 索引
function index(node) {
//上面所有的元素节点拼接正好对应所用,所有就是对应的长度就是对应的索引
return prevAll(node).length;
}
2.JQ中还有还有一些方法:
- prev获取上一个哥哥元素节点
- next获取下一个弟弟元素节点
- prevAll所有哥哥元素节点
- nextAll所有弟弟元素节点
- index获取它的索引
- siblings获取它的兄弟元素节点
- children获取所有的元素子节点 ....