前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >js 深度解析DOM

js 深度解析DOM

作者头像
贵哥的编程之路
发布2020-11-03 11:23:17
4.9K0
发布2020-11-03 11:23:17
举报

1:DOM开篇

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>程序之美</title>
</head>
<body>
    <script type="text/javascript">
        console.log(window.document);
        console.log(typeof window.document);
        console.log(window.document.title);
    </script>
</body>
</html>

注意一下: window代表窗口.

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

document是window的一个属性.

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

因为document是window的一个属性,因为属性都是对象拥有的,所以他是一个object;

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

记住,document对象可以操作文档中的所有内容,所以这样写… window可以不写的哈.

效果:

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

2.获取DOM元素上

代码语言:javascript
复制
<!DOCTYPE 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="father">
        <form action="">
            <input type="text" name="test">
            <input type="password" name="test" id="">
        </form>
    </div>
    <div class="father" id="box">我是div</div>
    <script type="text/javascript">
        console.log("//1:通过id获取指定元素");
       let q=document.getElementById("box");
       console.log(q);
       console.log(typeof q);
        console.log("//2:通过类名称指定元素");
         let w=document.getElementsByClassName("father");
       console.log(w);
       console.log("//3:通过name名称来获取");
       let e=document.getElementsByName("test");
       console.log(e);
       console.log("4:通过标签名来获取");
       let r=document.getElementsByTagName("div");
       console.log(r);
       console.log("5:通过选择器来获取一个");
       let t=document.querySelector("div>form");
       console.log(t);
       console.log("6:通过选择器来获取全部的");
       let y=document.querySelectorAll(".father");
       console.log(y);
    </script>
</body>

注意一下,获取的如果加了s获取all的就是全部的.否则就是一个

效果:

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

2.获取DOM元素下

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<div>
    <h1>1</h1>
    <h2>2</h2>
    <p class="item">3</p>
    <p>4</p>
    <span>5</span>
</div>
    <script type="text/javascript">
        console.log("1.获取指定元素所有的子元素");
        let q=document.querySelector("div");//指定元素
        console.log(q.children);//div下所有的子元素
        console.log("2:获取到的是指定元素中所有的节点");
        console.log(q.childNodes);
        console.log("遍历节点");
        for(let  node of q.childNodes)
        {
            if(node.nodeType===Node.ELEMENT_NODE)//遍历的节点类型如果是如果当前节点是元素节点的话。 
            {
                console.log(node);
            }
        }
        console.log("3:获取指定节点中的第一个子节点");
        console.log(q.firstChild);
        console.log("4:获取指定元素中的第一个子元素");
        console.log(q.firstElementChild);
        console.log("5:获取指定节点中最后一个子节点");
        console.log(q.lastChild);
        console.log("6:获取指定元素中最后一个子元素");
        console.log(q.lastElementChild);
        console.log("7.通过子元素获取父元素/父节点");
         let item = document.querySelector(".item");
         console.log(item.parentElement);
         console.log(item.parentNode);
         let parentEle=item.parentElement||item.parentNode;
         console.log(parentEle);
         console.log("获取相邻上一个节点");
         console.log(item.previousSibling);
         console.log(" 获取相邻上一个元素");
         console.log(item.previousElementSibling);
         console.log("获取相邻下一个节点");
         console.log(item.nextSibling);
         console.log("获取相邻下一个元素");
         console.log(item.nextElementSibling);
    </script>
</body>
</html>

注意一下,这里最重要的是属性长,写注意一点哈 效果;

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

节点增删改查

html部分都是这里的代码.

代码语言:javascript
复制
 <div>
    <h1>我是标题</h1>
    <p>我是段落</p>
</div>

1.创建节点

代码语言:javascript
复制
let q=document.createElement("span");
console.log(q);
console.log(typeof q);

效果:

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

2.添加节点

代码语言:javascript
复制
let e=document.querySelector("div");
e.appendChild(q);
let r=document.createElement("a");
e.appendChild(r);

效果:

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

3:插入节点:

代码语言:javascript
复制
let oSpan=document.createElement("span");
let oDiv = document.querySelector("div");
let oH1 = document.querySelector("h1");
let oP = document.querySelector("p");
oDiv.insertBefore(oSpan,oH1);
oDiv.insertBefore(oSpan,oP);

效果:

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

5.删除节点

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
    <h1>我是标题</h1>
    <p>我是段落</p>
</div>
<script type="text/javascript">
	 let oDiv = document.querySelector("div");
     let oH1 = document.querySelector("h1");
    let oP = document.querySelector("p");
    oH1.parentNode.removeChild(oH1);
   oP.parentNode.removeChild(oP);
</script>
</body>
</html>

注意点: 在js中如果想要删除某一个元素, 只能通过对应的父元素来删除 元素是不能够自杀的

效果:

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

6: 克隆节点

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
    <h1>我是标题</h1>
    <p>我是段落</p>
</div>
<script type="text/javascript">
	  let oDiv = document.querySelector("div");
	  let newDiv=oDiv.cloneNode(true);
	  document.body.append(newDiv);
</script>
</body>
</html>

效果:

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

元素属性操作

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:DOM开篇
  • 2.获取DOM元素上
  • 2.获取DOM元素下
  • 节点增删改查
  • 元素属性操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档