当前元素需要使用与自己同级的元素,请问如何获取(原生JS)?
1条回答 默认 最新
- ChatGPTᴼᴾᴱᴺᴬᴵ 2023-12-09 18:53关注
所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
(文心一言专栏,V2.5.2版本,2023.12.09)
该回答引用文心大模型3.5,仅提供参考,不保证完全正确
在原生JavaScript中,可以使用parentNode
或nextSibling
属性来获取元素的父节点或兄弟节点。但是,如果你需要获取与当前元素同级的元素,你可能需要遍历其父节点下的所有子节点。
以下是一个示例,假设你有一个JSON对象被转换为了HTML元素:
let json = { "name": "root", "children": [ { "name": "child1", "children": [ { "name": "child1.1", "children": [] }, { "name": "child1.2", "children": [] } ] }, { "name": "child2", "children": [] } ] }; // 递归函数,用于根据JSON对象创建元素并添加到DOM中 function createElementFromJSON(json) { let element = document.createElement(json.name); if (json.children) { for (let child of json.children) { let childElement = createElementFromJSON(child); element.appendChild(childElement); } } return element; } // 使用上述函数创建元素并添加到DOM中 let root = createElementFromJSON(json); document.body.appendChild(root);
现在,假设你想获取与
child1.1
同级的元素。你可以遍历其父节点(child1
)的所有子节点来实现:function getSiblingsOfElement(element) { let parent = element.parentNode; let siblings = []; if (parent) { for (let i = 0; i < parent.children.length; i++) { if (parent.children[i] !== element) { // 排除当前元素自身 siblings.push(parent.children[i]); } } } return siblings; } // 获取与child1.1同级的元素 let child1_1 = document.querySelector('.child1 .child1_1'); // 使用适当的类名或选择器选择你的元素 let siblings = getSiblingsOfElement(child1_1); console.log(siblings); // 输出与child1.1同级的元素数组
解决 无用评论 打赏 举报