JS - 事件 - 获取所有子节点

1. 获取所有子节点

<!DOCTYPE html>
<html>  
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JS</title>
    </head> 
<style>
    body {
        text-align: center;
    }
</style>
    <body>
        <div id="box">
            <button class="btn" onclick="doClick()">按钮</button>
            <span id="span">
                <a href="#">百度一下</a>
            </span>
            <p>我是段落</p>
        </div>
    <script type="text/javascript">
        function doClick() {
            var box = document.getElementById("box");
            //获取第一个子节点
            console.log("获取第一个子节点");
            console.log(box.firstElementChild || box.firstChild);
            //获取最后一个子节点
            console.log("获取最后一个子节点");
            console.log(box.lastElementChild || box.lastChild);
            // 获取所有子节点
            console.log("获取所有子节点");
            var allNodeList = box.childNodes;
            console.log(allNodeList);

            console.log("=======");
            var newList = [];
            for (var i = 0; i < allNodeList.length; i++) {
                var node = allNodeList[i];
                if (node.nodeType === 1) {   //判断类型
                    newList.push(node);
            }
        }
        console.log(newList);
      }
</script>
  </body>
</html>

Result:

在这里插入图片描述

2. 获取直接子节点

<!DOCTYPE html>
<html>  
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>JS</title>
    </head>
  
  <body>
      <div id="box">
          <button class="btn" onclick="doClick()">按钮</button>
          <span id="span">
              <a href="#">百度一下</a>
          </span>
          <p>我是段落</p>
      </div>
      <script type="text/javascript">
         function doClick() {
            var box = document.getElementById("box");
            //输出一级子节点
            var nodeList = box.children;
            console.log(nodeList);
        }
       </script>
  </body>
</html>

Result:

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个获取 el-tree 所有子节点的 demo: ```html <template> <el-tree :data="data" :props="defaultProps"> <span class="custom-tree-node" slot-scope="{ node, data }"> {{ data.label }} <el-button @click="getAllChildren(node)">获取子节点</el-button> </span> </el-tree> </template> <script> export default { data() { return { data: [ { label: "一级 1", children: [ { label: "二级 1-1", children: [ { label: "三级 1-1-1" }, { label: "三级 1-1-2" } ] }, { label: "二级 1-2", children: [ { label: "三级 1-2-1" }, { label: "三级 1-2-2" } ] } ] }, { label: "一级 2", children: [ { label: "二级 2-1", children: [ { label: "三级 2-1-1" }, { label: "三级 2-1-2" } ] }, { label: "二级 2-2", children: [ { label: "三级 2-2-1" }, { label: "三级 2-2-2" } ] } ] } ], defaultProps: { children: "children", label: "label" } }; }, methods: { getAllChildren(node) { console.log(node.childNodes); } } }; </script> ``` 在这个 demo 中,我们通过给每个节点添加一个按钮,来触发获取子节点的操作。具体实现方式是在 el-tree 中添加一个 slot,并为按钮绑定一个点击事件,点击事件中调用 `getAllChildren` 方法,方法中获取当前节点的所有子节点并打印到控制台中。 这个 demo 的核心代码如下: ```html <span class="custom-tree-node" slot-scope="{ node, data }"> {{ data.label }} <el-button @click="getAllChildren(node)">获取子节点</el-button> </span> ``` ```javascript getAllChildren(node) { console.log(node.childNodes); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值