qq983362099 2014-03-22 07:06 采纳率: 0%
浏览 5161

请问JS如何获取json父节点或兄弟节点?

当前元素需要使用与自己同级的元素,请问如何获取(原生JS)?

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-12-09 18:53
    关注

    所有内容均由人工智能模型输出,其内容的准确性和完整性无法保证,不代表我的态度或观点。
    (文心一言专栏,V2.5.2版本,2023.12.09)


    该回答引用文心大模型3.5,仅提供参考,不保证完全正确
    在原生JavaScript中,可以使用parentNodenextSibling属性来获取元素的父节点或兄弟节点。但是,如果你需要获取与当前元素同级的元素,你可能需要遍历其父节点下的所有子节点。


    以下是一个示例,假设你有一个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同级的元素数组
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用