web apis 基础总结 two

本文详细介绍了Web APIs中自定义属性的操作技巧,包括获取、设置、移除,以及H5特有的dataset属性。同时,深入讲解了节点操作,如节点类型、层级、父子节点、兄弟节点的获取与操作,以及DOM节点的创建、增删改查实例。
摘要由CSDN通过智能技术生成

web apis 基础总结 two

作者:会者

会者定离,一期一祈

前言

一、 自定义属性操作

1 获取属性值

在这里插入图片描述

<div id="demo" index="1" class="nav"></div>
    <script>
        var div = document.querySelector('div');
        // 1. 获取元素的属性值
        // (1) element.属性
        console.log(div.id);
        //(2) element.getAttribute('属性')  get得到获取 attribute 属性的意思 我们程序员自己添加的属性我们称为自定义属性 index
        console.log(div.getAttribute('id'));
        console.log(div.getAttribute('index'));
	</script>

2. 设置属性值

在这里插入图片描述

     // 2. 设置元素属性值
        // (1) element.属性= '值'
        div.id = 'test';
        div.className = 'navs';
        // (2) element.setAttribute('属性', '值');  主要针对于自定义属性
        div.setAttribute('index', 2);
        div.setAttribute('class', 'footer'); // class 特殊  这里面写的就是

3. 移出属性

	// class 不是className
        // 3 移除属性 removeAttribute(属性)    
        div.removeAttribute('index');

4. H5自定义属性

在这里插入图片描述
在这里插入图片描述

    <div getTime="20" data-index="2" data-list-name="andy"></div>
    <script>
        var div = document.querySelector('div');
        // console.log(div.getTime);
        console.log(div.getAttribute('getTime'));
        div.setAttribute('data-time', 20);
        console.log(div.getAttribute('data-index'));
        console.log(div.getAttribute('data-list-name'));
        // h5新增的获取自定义属性的方法 它只能获取data-开头的
        // dataset 是一个集合里面存放了所有以data开头的自定义属性
        console.log(div.dataset);
        console.log(div.dataset.index);
        console.log(div.dataset['index']);
        // 如果自定义属性里面有多个-链接的单词,我们获取的时候采取 驼峰命名法
        console.log(div.dataset.listName);
        console.log(div.dataset['listName']);
    </script>

二、节点操作

1. 节点概述

一般地,节点至少拥有nodeType(节点类型)、nodeName(节点名称)和nodeValue(节点值)这三个基本属性。

在这里插入图片描述

2. 节点层级

利用 DOM 树可以把节点划分为不同的层级关系,常见的是父子兄层级关系。

3. 父级节点

parentNode

<div class="demo">
        <div class="box">
            <span class="erweima">×</span>
        </div>
    </div>
    <script>
        // 1. 父节点 parentNode
        var erweima = document.querySelector('.erweima');
        // var box = document.querySelector('.box');
        // 得到的是离元素最近的父级节点(亲爸爸) 如果找不到父节点就返回为 null
        console.log(erweima.parentNode);
    </script>

4. 子节点

1.所有子节点

在这里插入图片描述

2.子元素节点

在这里插入图片描述

<ul>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
        <li>我是li</li>
    </ul>
    <script>
        // DOM 提供的方法(API)获取
        var ul = document.querySelector('ul');
        var lis = ul.querySelectorAll('li');
        // 1. 子节点  childNodes 所有的子节点 包含 元素节点 文本节点等等
        console.log(ul.childNodes);
        console.log(ul.childNodes[0].nodeType);
        console.log(ul.childNodes[1].nodeType);
        // 2. children 获取所有的子元素节点 也是我们实际开发常用的
        console.log(ul.children);
    </script>

5. 兄弟节点

1.下一个兄弟节点

  node.nextSibling

2.上一个兄弟节点

node.previousSibling

3.下一个兄弟元素节点

 node.nextElementSibling

2.上一个兄弟元素节点

node.previousElementSibling

6. 创建节点

在这里插入图片描述

7. 添加节点

在这里插入图片描述

  <ul>
        <li>123</li>
    </ul>
    <script>
        // 1. 创建节点元素节点
        var li = document.createElement('li');
        // 2. 添加节点 node.appendChild(child)  node 父级  child 是子级 后面追加元素
        var ul = document.querySelector('ul');
        ul.appendChild(li);
        // 3. 添加节点 node.insertBefore(child, 指定元素);
        var lili = document.createElement('li');
        ul.insertBefore(lili, ul.children[0]);
        // 4. 我们想要页面添加一个新的元素 : 1. 创建元素 2. 添加元素
    </script>

8.删除节点

node.removeChild(child);

代码案例:

 <button>删除</button>
    <ul>
        <li>熊大</li>
        <li>熊二</li>
        <li>光头强</li>
    </ul>
    <script>
        // 1.获取元素
        var ul = document.querySelector('ul');
        var btn = document.querySelector('button');
        // 2. 删除元素  node.removeChild(child)
        // ul.removeChild(ul.children[0]);
        // 3. 点击按钮依次删除里面的孩子
        btn.onclick = function() {
            if (ul.children.length == 0) {
                this.disabled = true;
            } else {
                ul.removeChild(ul.children[0]);
            }
        }
    </script>

9.克隆节点

node.cloneNode()     //括号为空或者里面是false 浅拷贝 只复制标签不复制里面的内容
node.cloneNode(true);      // 括号为true 深拷贝 复制标签复制里面的内容

代码案例:

 <ul>
        <li>1111</li>
        <li>2</li>
        <li>3</li>
    </ul>
    <script>
        var ul = document.querySelector('ul');
        // 1. node.cloneNode(); 括号为空或者里面是false 浅拷贝 只复制标签不复制里面的内容
        // 2. node.cloneNode(true); 括号为true 深拷贝 复制标签复制里面的内容
        var lili = ul.children[0].cloneNode(true);
        ul.appendChild(lili);
    </script>

DOM总结

1创建

  document.write
  innerHTML     // innerHTML = ' 好好学习  ’;
  createElement   //document.createElement('li');

2增加

appendchild   // node.appendchild(li)
 insertBefore    // node.insertBefore('指定元素',指定位置 );

3删

node. removeChild(指定元素)  //   ul.removeChild(ul.children[0])

4改

 元素属性 获取要更改的节点
 src href style  用等号赋值  更改属性值

5 查

 主要查 获取元素 
 getElementById();
 getElemensByTagName();
 querySelector()
 querySelevtorAll()
 parentNode
 children

6 属性操作

   setAttribute //设置dom的属性值
   getAtteibute // 得到dom值
   removeAttribute   //移除属性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值