JavsScriptDOM节点

66 阅读2分钟

DOM节点

节点类型

元素节点

1、所有的标签 body、div、a

2、html是根节点

属性节点

所有的属性 href id class

文本节点

节点的增删查改

父节点查找

方法名.parentNode

    <div class="dd">
        <div class="bb">x</div>
    </div>

    <script>
        const b=document.querySelector('.bb')
        // 返回子节点 返回dom对象
        console.log(b);
        // 返回父节点 返回dom对象
        console.log(b.parentNode);
    </script>

子节点查找

方法名.children

    <ul>
        <li>
            1
        </li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
    <script>
        // const ul = document.querySelector('ul')
        // // 得到伪数组
        // console.log(ul.children);
        // 获取第二个li
        const li2 = document.querySelector('ul li:nth-child(2)')
        // 上一个兄弟节点
        console.log(li2.previousElementSibling);
        //下一个兄弟节点
        console.log(li2.nextElementSibling);
    </script>

兄弟节点查找

查找前一个节点

方法名.previousElementSiling

查找后一个节点

方法名.nextElementSiling

    <ul>
        <li>
            1
        </li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
        const li2 = document.querySelector('ul li:nth-child(2)')
        // 上一个兄弟节点
        console.log(li2.previousElementSibling);
        //下一个兄弟节点
        console.log(li2.nextElementSibling);

添加节点

先创建节点,在添加节点

创建节点:createElement('div') //创建div节点

insertBefore(插入的元素,插入到那个元素的前面)//插入节点

追加节点:元素名.insertBefore('div')

追加节点:元素名.appendChild('div') 往前加

        // 1.创建节点
        const div = document.createElement('div')
        // 2.将节点追加到body中 appendChild 插入到这个父元素后面
        document.body.appendChild(div)

        const ul = document.querySelector('ul')
        // createElement创建节点
        const li = document.createElement('li')
        li.innerHTML = 'JUSTDOIT'
        // ul.appendChild(li)
        // insertBefore(插入的元素,插入到那个元素的前面)
        ul.insertBefore(li,ul.children[0])


克隆节点

特殊情况下,我们新增节点

1.复制一个原有节点
2.把复制的节点放入指定的元素内部
   克隆一个已有的元素节点
   元素.cloneNode(布尔值)---会克隆出一个跟原标签一样的元素,括号內传入布尔值
   若为true 则代表篇克隆时会包含后代节点一起克隆
   若为false 则代表克隆时不包含后代节点
  默认为false
<ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
      const ul = document.querySelector('ul')
        // 克隆第一个li节点
        const li1 = ul.children[0].cloneNode(true)
        console.log(li1);
        // 追加到列表
        ul.appendChild(li1)

删除节点

删除元素必须通过父元素删除---不存在父子关系则删除不成功

语法 父元素.removeChild(要删除的元素)

    <ul>
        <li>JUSTODIT</li>
    </ul>
    <script>
    const ul=document.querySelector('ul')
    ul.removeChild(ul.children[0])
    </script