jq获取最后一个子节点_JavaScript(9) webapi操作节点

为啥要使用节点操作

主要是根据节点之间的关系来更方便的获取元素对象.

例如: 之前写过的点击计数示例, 前面的做法是使用 querySelector 获取两个 input 标签, 再进行操作.

但是两个 input 标签其实是兄弟关系, 咱们可以借助节点操作, 更方便的获取到 input 的元素对象.

 <input type="text" id="text" value="0"><input type="button" id="btn" value='点我+1'><script>    var text = document.querySelector('#text');    var btn = document.querySelector('#btn');    btn.onclick = function () {
            var num = +text.value;        console.log(num);        num++;        text.value = num;    }script>

核心关系: 父子, 兄弟.

页面中的一切内容都是节点

文本, 元素, 属性等都是节点.

每个节点对象主要有三个属性:

  • 节点名称 (nodeName)

  • 节点类型 (nodeType): 元素节点为 1, 属性节点为 2, 文本节点为 3(文字, 空格, 换行都算文本节点) , 开发中主要操作元素节点.

  • 节点值 (nodeValue)

 <div class="box">div><script>    var div = document.querySelector('.box');    console.dir(div);script>

2c4a90b35a82efbd86568da7276696e6.png

获取父节点

体会 HTML 中的父子关系

 <html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>父子关系title>head><body>    <div class="grandfather">        <div class="father">            <div class="son">div>        div>    div>body>html>

在这个 html 中:

  • html 是 head 和 body 的父节点.

  • head 是 meta, title 的父节点.

  • body 是 .grandfather 的父节点.

  • .grandfather 是 .father 的父节点.

  • .father 是 .son 的父节点.

使用 parentNode 属性获取到该节点的父节点.

 <div class="grandfather">    <div class="father">        <div class="son">div>    div>div><script>    var son = document.querySelector('.son');    console.log(son);    console.log(son.parentNode);    console.log(son.parentNode.parentNode);script>

获取所有子节点

1) 使用 childNodes 属性获取到该节点的子节点

 <ul>    <li>1li>    <li>2li>    <li>3li>ul><script>    var ul = document.querySelector('ul');    console.log(ul.childNodes);script>

注意! 结果是 NodeList 类型, 得到的是 "节点", 而不是 "元素" (节点的范围比元素更广)

d0a4aea2a744399dd80cb5028d552c87.png

第一个 li 和 ul 之间存在换行.

最后一个 li 和 ul 之间存在换行.

li 和  li 之间也存在换行.

这些换行也都是节点(文本节点).

如果想只获取元素节点, 可以手动写个函数, 把 type 为 1 的节点保留下来.

 function getElementNode(nodeList) {
        var result = [];    for 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值