javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js dom操作

JavaScript中dom操作方法示例详解

作者:我嘞个ddddd

JavaScript操作DOM(文档对象模型)是前端开发中的一项基本技能,它允许开发者通过编程方式动态地修改网页的内容、结构和样式,这篇文章主要介绍了JavaScript中dom操作方法的相关资料,需要的朋友可以参考下

前言

DOM(文档对象模型)操作是基于面向对象的思想设计的。在浏览器中,HTML 文档被解析为一个由对象组成的树形结构(即 DOM 树),每个 HTML 元素、属性、文本节点都是一个对象,通过对象的属性和方法可以实现对页面内容的动态操作。

一、查找

1.1 获取元素

getElementById()        通过id获取元素 获取符合条件的第一个对象

var obj = document.getElementById("aa")

getElementsByClassName()        根据class值查找 找到所有符合条件的对象组成的数组

var arr = document.getElementsByClassName("aa")

getElementsByTagName()        根据元素名称查找  找到所有符合条件的对象组成的数组

var arr = document.getElementsByTagName("div")

 querySelector()        根据元素选择器查找,获取符合条件的第一个对象

var obj = document.querySelector(".aa")

querySelectorAll()        根据元素选择器查找,找到所有符合条件的对象组成的数组

var arr = document.querySelectorAll(".aa")

1.2 通过关系查找(Dom节点)

找父亲 parentNode   parentElement

找孩子 childNodes(包含元素节点和文本节点)  children(所有子元素节点)

第一个孩子 firstChild firstElementChild

最后一个孩子 lastChild  lastElementChild

上一个元素 previousSibling  previousElementSibling

下一个元素  nextSibling nextElementSibling

二、修改

2.1 改内容

 innerText以文本形式呈现
innerHTML解析成标签
value用于修改收集用户信息的标签(如input)

2.1.1  innerText

html文件代码

<!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 class="aa">aa</div>
    <input type="text" value="00" class="bb">
</body>
<script type="text/javascript" src="./00.js"></script>
</html>

js文件代码如下:

var obj = document.querySelector(".aa")
obj.innerText="<a>0000000</a>"

结果如下:

2.1.2 innerHTML

js代码如下:

var obj = document.querySelector(".aa")
obj.innerHTML="<a>0000000</a>"

结果如下:

2.1.3 value

js代码如下:

var obj = document.querySelector(".aa")
obj.innerHTML="<a>0000000</a>"
var bb = document.querySelector(".bb")
bb.value="xxxxx"

结果如下:

2.2 改属性

对象.属性=值

html文件代码:

<!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>
<style>
    .aa{
        width:200px;
        height:200px;
        background-color: aqua;
    }
    .bb{
        width:200px;
        height:200px;
        background-color:yellow;
    }
</style>
<body>
    <div class="aa">aa</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>

结果如下:

js文件代码如下:

var obj = document.querySelector(".aa")
obj.className="bb"

结果如下:

2.3 自定义属性

setAttribute("属性名", "属性值")

getAttribute("属性名")

html文件代码:

<!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>
<style>
    .aa{
        width:200px;
        height:200px;
        background-color: aqua;
    }
    .bb{
        width:200px;
        height:200px;
        background-color:yellow;
    }
</style>
<body>
    <div class="aa">aa</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>

js文件代码如下:

var obj = document.querySelector(".aa")
obj.setAttribute("index","1")
console.log(obj.getAttribute("index"))

结果如下: 

2.4 改样式

obj.style.属性名="属性值"

html文件代码:

<!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>
<style>
    .aa{
        width:200px;
        height:200px;
        background-color: aqua;
    }
    .bb{
        width:200px;
        height:200px;
        background-color:yellow;
    }
</style>
<body>
    <div class="aa">aa</div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>

js文件代码如下:

var obj = document.querySelector(".aa")
obj.style.backgroundColor='red'

结果如下: 

注:修改样式时属性名要采用驼峰式,如 font-size 要变为fontSize。

三、添加

3.1 创建元素

createElement()创建元素
cloneNode()复制元素( false浅复制,只复制外壳   true复制全部)

3.2 添加元素

appendChild()子元素最后位置添加
insertBefore()某个子元素前添加
replaceChild()替换掉某个子元素

3.2.1 appendChild()

html文件代码:

<!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>
<style>
    .aa{
        width:200px;
        height:200px;
        background-color: aqua;
    }
    .bb{
        width:100px;
        height:100px;
        background-color:rgb(255, 0, 93);
    }
</style>
<body>
    <div class="aa">
        <div class="bb">子元素</div>
    </div>
</body>
<script type="text/javascript" src="./00.js"></script>
</html>

代码运行结果:

js文件代码:

var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "purple"
obj.appendChild(newNode,bb)

结果如下:

3.2.2 insertBefore()

js文件代码:

var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "purple"
obj.insertBefore(newNode,bb)

 结果如下:

注:还可以采用prepend()。

3.2.3 replaceChild()

js代码如下:

var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "purple"
obj.replaceChild(newNode,bb)

结果如下:

3.2.4 cloneNode()

js文件代码如下:

var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
var newNode = document.createElement("h2")
console.log(newNode)
newNode.innerText = "新添加的元素"
newNode.className = "xixi"
newNode.style.background = "red"
var cc = newNode.cloneNode(true)
obj.replaceChild(cc,bb)

 结果如下:

五、删除

找要删除元素的父级元素,调用removeChild()方法

html文件代码同增加中html文件代码。

js文件代码如下:

var obj = document.querySelector(".aa")
var bb = document.querySelector(".bb")
obj.removeChild(bb)

结果如下:

总结 

到此这篇关于JavaScript中dom操作方法的文章就介绍到这了,更多相关js dom操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文