Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何选择父项';s兄弟姐妹';使用javascript(不使用jquery)创建子对象_Javascript - Fatal编程技术网

如何选择父项';s兄弟姐妹';使用javascript(不使用jquery)创建子对象

如何选择父项';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

我知道在jquery中可以做到这一点,但如何在纯javascript中做到这一点呢

$(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),
];