JS 节点

节点基础
  1. 节点类型
    元素节点:node.element_node()
    属性节点:node.attribute_node()
    文本节点:node.text_node()

  2. 节点属性

    节点类型nodeNamenodeValuenodeType
    元素节点元素名null1
    属性节点属性名属性值2
    文本节点text节点内容3
    documentdocumentnull9
  3. 获取元素节点的方法

    1. getElementById();
    2. getElementsByName();获取到的是伪数组
    3. getElementsByTagName();获取到的是伪数组
  4. 元素节点常用的属性

    1. tagName
    2. innerHTML/innerText
    3. id
    4. style
    5. className
遍历节点
  1. 子节点

    方法说明备注
    childNodes所有直接子节点(包括文本节点,属性节点,换行,空格)伪数组
    children所有直接元素子节点伪数组
    childElementCount所有直接元素子节点的个数children.length
    firstchild第一个子节点childNodes[0]
    firstElementChild第一个元素子节点children[0]
    lastchild最后一个节点
    lastElementChild最后一个元素的子节点
  2. 父节点
    parentNode

  3. 兄弟节点

    方法说明备注
    previousSibling前面一个节点
    previousElementSibling前面一个元素节点
    nextSibling后面一个节点
    nextElementSibling后面一个元素节点
  4. 获取属性节点
    Attributes[‘属性名’]

  5. 查看/修改属性节点
    getAttribute(‘属性名’)
    setAttribute(‘属性名’,’属性值’)

  6. 创建和增加节点
    creatElement()创建节点
    appendchild()以末尾追加的方式插入节点
    cloneNode(true) 克隆节点,true表示深度复制

  7. 删除和替换节点
    removeChild():删除节点
    replaceChild():替换节点

    //获取div01
    let div01=document.querySelector('.div01');
    //创建节点
    let div=createElement('div');
    //添加元素属性
    div.setAttibute('class','div-inner');
    //添加元素内容
    let txt=document.createTextNode('hello world');
    div.appendChild(txt);
    //添加节点
    div01.appendChild(div);
    //克隆节点
    let div02=div.cloneNode(true);
    div02.innerText='div02';
    div01.appendChild(div02);
事件冒泡
  1. this的用法,表示当前对象

    let div03=document.querySelector('.div03');
    div03.onclick=function(e){
        alert(this===div03);
        //这里的this===div03===e.target
    
        setTimeout(function(){
            alert(this.className);
        },2000)
        //这里的thiswindow
    
        //lambda表达式 this===div03
        setTimeout(()=>{
            alert(this.className)
        },2000)
    }
    
  2. 事件冒泡
    父元素有监听时,对子元素进行操作也会影响到父元素
    阻止冒泡:e.stopPropagation()

    div02.onclick=function(e){
    //e.target是当前事件,this表示div02
        if(e.target===this){
            alert(e.target.className);
        }
    }
  3. 事件冒泡的好处
    为父元素添加一个监听,动态添加子元素时就不必为子元素一个个添加监听了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值