获得一个元素的所有兄弟元素节点,是需要包含它自己的对吗。得把它本身拼接上吗
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>获得一个元素的所有兄弟元素节点</title>
</head>
<body>
<div id="ele">
<p>1</p>
<p>2</p>
<p id="third">3</p>
<p>4</p>
<p>5</p>
<p>6</p>
</div>
<script>
function getAllElementsSibling(node) {
// 前面节点集合
var pervs = [];
// 后面节点集合
var nexts = [];
// 前面元素节点遍历
var ret = node;
while (ret.previousSibling != null) {
if (ret.previousSibling.nodeType == 1) {
pervs.unshift(ret.previousSibling);
}
ret = ret.previousSibling;
}
// 后面元素节点遍历
ret = node;
while (ret.nextSibling != null) {
if (ret.nextSibling.nodeType == 1) {
nexts.push(ret.nextSibling);
}
ret = ret.nextSibling;
}
return pervs.concat(node, nexts);
};
console.log(getAllElementsSibling(third));
</script>
</body>
</html>
源自:DOM
3-13 封装节点关系函数
9
收起
正在回答
1回答
同学你好,同学理解的是对的。
这里是说要将一个元素的所有兄弟节点都获取到,那么这里使用的是concat方法进行的拼接,拼接时把全部的都要装到数组中。如下图打印一下看看结果


那么这里就是将当前传递的node前后的兄弟元素全部concat到一起。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星