前端学习笔记-22-浏览器中的DOM操作

本文介绍了DOM操作中的标签查找方法,包括id、类名和标签选择器,并展示了如何动态创建img和a标签,设置属性并插入到页面中。同时涵盖了节点操作、获取值、类与CSS操作,以及一些基础的HTML元素操作和数据获取技巧。
摘要由CSDN通过智能技术生成

DOM操作

查找标签

  • 直接查找

    """
    id查找
    类查找
    标签查找
    """
    # 注意三个方法的返回值是不一样的
    document.getElementById('d1')
    
    
    document.getElementsByClassName('c1')
    HTMLCollection [p.c1]0: p.c1length: 1__proto__: HTMLCollection
          
    document.getElementsByTagName('div')
    HTMLCollection(3) [div#d1, div, div, d1: div#d1]
                       
                       
    let divEle = document.getElementsByTagName('div')[1]
    divEle
    <div>​div>div​</div>

效果,其他以此类推
在这里插入图片描述

  • 间接查找

    let pEle = document.getElementsByClassName('c1')[0]  # 注意是否需要索引取值
    
    pEle.parentElement  # 拿父节点
    let divEle = document.getElementById('d1')
    divEle.children  # 获取所有的子标签
    divEle.children[0]
    
    
    divEle.firstElementChild
    <div>​div>div​</div>​
    
    divEle.lastElementChild
    <p>​div>p​</p>​
    
    divEle.nextElementSibling  # 同级别下面第一个
    <div>​div下面div​</div>​
    
    divEle.previousElementSibling  # 同级别上面第一个
    <div>​div上面的div​</div>

效果(其他以此类推)
在这里插入图片描述

节点操作

"""
通过DOM操作动态的创建img标签
并且给标签加属性
最后将标签添加到文本中
"""
let imgEle = document.createElement('img')  # 创建标签

imgEle.src = 'A.png'  # 给标签设置默认的属性
imgEle

imgEle.username = '资本家'  # 自定义的属性没办法点的方式直接设置

imgEle



imgEle.setAttribute('username','jason')   # 既可以设置自定义的属性也可以设置默认的书写
undefined
imgEle
<img src="111.png" username="jason">​
imgEle.setAttribute('title','一张图片')
imgEle
<img src="111.png" username="jason" title="一张图片">​

let divEle = document.getElementById('d1')
undefined
divEle.appendChild(imgEle)  # 标签内部添加元素(尾部追加)
<img src="111.png" username="资本家" title="一张图片">"""
创建a标签
设置属性
设置文本
添加到标签内部
	添加到指定的标签的上面
"""
let aEle = document.createElement('a')

aEle
<a></a>​
aEle.href = 'https://www.mzitu.com/'
"https://www.mzitu.com/"
aEle
<a href="https:​/​/​www.mzitu.com/​"></a>​

aEle.innerText = '点我有你好看!'  # 给标签设置文本内容
"点我有你好看!"
aEle
<a href="https:​/​/​www.mzitu.com/​">​点我有你好看!​</a>​
let divEle = document.getElementById('d1')
undefined
let pEle = document.getElementById('d2')
undefined
divEle.insertBefore(aEle,pEle)  # 添加标签内容指定位置添加
<a href="https:​/​/​www.mzitu.com/​">​点我有你好看!​</a>"""
额外补充
	appendChild()
		removeChild()
		replaceChild()
	
	
	setAttribute()  设置属性
		getAttribute()  获取属性
		removeAttribute()  移除属性
"""

# innerText与innerHTML
divEle.innerText  # 获取标签内部所有的文本
"div 点我有你好看!
div>p
div>span"

divEle.innerHTML  # 内部文本和标签都拿到
"div
        <a href="https://www.mzitu.com/">点我有你好看!</a><p id="d2">div&gt;p</p>
        <span>div&gt;span</span>
    "
    
divEle.innerText = 'heiheihei'
"heiheihei"
divEle.innerHTML = 'hahahaha'
"hahahaha"

divEle.innerText = '<h1>heiheihei</h1>'  # 不识别html标签
"<h1>heiheihei</h1>"
divEle.innerHTML = '<h1>hahahaha</h1>'  # 识别html标签
"<h1>hahahaha</h1>"

效果(其他以此类推)
在这里插入图片描述

获取值操作

# 获取用户数据标签内部的数据
let seEle = document.getElementById('d2')
seEle.value


let inputEle = document.getElementById('d1')
inputEle.value

# 如何获取用户上传的文件数据
let fileEle = document.getElementById('d3')
fileEle.value  # 无法获取到文件数据
"C:\fakepath\02_测试路由.png"

fileEle.files
FileList {0: File, length: 1}0: File {name: "02_测试路由.png", lastModified: 1557043082000, lastModifiedDate: Sun May 05 2019 15:58:02 GMT+0800 (中国标准时间), webkitRelativePath: "", size: 29580,}length: 1__proto__: FileList
      
fileEle.files[0]  # 获取文件数据
File {name: "02_测试路由.png", lastModified: 1557043082000, lastModifiedDate: Sun May 05 2019 15:58:02 GMT+0800 (中国标准时间), webkitRelativePath: "", size: 29580,}

class、css操作

let divEle = document.getElementById('d1')
undefined
divEle.classList  # 获取标签所有的类属性
DOMTokenList(3) ["c1", "bg_red", "bg_green", value: "c1 bg_red bg_green"]


divEle.classList.remove('bg_red')  # 移除某个类属性
undefined

divEle.classList.add('bg_red')  # 添加类属性
undefined
divEle.classList.contains('c1')  # 验证是否包含某个类属性
true
divEle.classList.contains('c2')
false

divEle.classList.toggle('bg_red')  # 有则删除无则添加
false
divEle.classList.toggle('bg_red')
true
divEle.classList.toggle('bg_red')
false
divEle.classList.toggle('bg_red')
true
divEle.classList.toggle('bg_red')
false
divEle.classList.toggle('bg_red')
true



# DOM操作操作标签样式 统一先用style起手
let pEle = document.getElementsByTagName('p')[0]
undefined
pEle.style.color = 'red'
"red"
pEle.style.fontSize = '28px'
"28px"
pEle.style.backgroundColor = 'yellow'
"yellow"
pEle.style.border = '3px solid red'
"3px solid red"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丰。。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值