如何选择父项';s兄弟姐妹';使用javascript(不使用jquery)创建子对象
我知道在jquery中可以做到这一点,但如何在纯javascript中做到这一点呢如何选择父项';s兄弟姐妹';使用javascript(不使用jquery)创建子对象,javascript,Javascript,我知道在jquery中可以做到这一点,但如何在纯javascript中做到这一点呢 $(this).parent().siblings().find('.children').addClass("unselected"); DOM API中的兄弟()没有直接模拟 this.parentNode.parentElement.querySelectorAll('.children') .forEach(child => child.classList.add('uns
$(this).parent().siblings().find('.children').addClass("unselected");
DOM API中的
兄弟()
没有直接模拟
this.parentNode.parentElement.querySelectorAll('.children')
.forEach(child => child.classList.add('unselected'));
可能实现的
同级()
:
参考部分
document.onclick=e=>{
var sibles=getsibles(如target.parentElement);
兄弟.forEach(元素=>{
var children=element.queryselectoral(“.children”);
children.forEach(el=>{
el.classList.add(“未选择”);
})
})
}
var getsides=函数(elem){
//设置兄弟数组并获取第一个兄弟
风险值=[];
var sibling=elem.parentNode.firstChild;
//通过每个兄弟循环并推送到阵列
while(兄弟姐妹){
if(sibling.nodeType==1&&sibling!==elem){
兄弟姐妹。推(兄弟姐妹);
}
sibling=sibling.nextSibling
}
返回兄弟姐妹;
};代码>
。未选中{
颜色:红色
}
兄弟姐妹div
点击这里
兄弟姐妹2组
或者点击这里
兄弟姐妹3组
有班级儿童的分区
兄弟姐妹第4组
或者点击这里
无需添加两个答案,编辑上一个答案。
const sib = (dir) => (node) => (
node[dir]
? [node[dir], ...sib(node[dir])]
: []
);
const prevSiblings = sib('prevSibling');
const nextSiblings = sib('nextSibling');
const siblings = (node) => [
...prevSiblings(node),
...nextSiblings(node),
];