DOM的相关操作

js中DOM的相关操作


通过 HTML DOM,JavaScript 能够访问和改变 HTML 文档的所有元素

HTML DOM(文档对象模型)

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)

HTML DOM 模型被结构化为对象树

对象的 HTML DOM 树

方便的展示了家族成员之间的关系,把复杂的关系简明的表示出来

DOM节点操作

1.dom获取(6种方式)

//通过id获取到单个元素 let oBox = document.getElementById('box'); console.log(oBox) //<div id='box' class="item">123456</div> //通过class类获取到的是一组元素,不是数组 let oBox2 = document.getElementsByClassName('item'); console.log(oBox2) //HTMLCollection [div#box.item,box:div#box.item] console.log(oBox[0]==oBox) //通过TagName获取道德是一组元素,与上面相同 let oBox3 = document.getElementsByTagName('div')[0]; console.log(oBox3) //通过name后去到的是NodeList[div#box.item],也是集合 let oBox4 = document.getElementsByName('mybox'); console.log(oBox4) //NodeList[div#box.item] //h5新加两种 //获取单个 let item = document.querySelector('.item') //参数为class名称 //获取组合 let items = document.querySelectorAll('.item') console.log(item,items) //body let body = document.body; //html let html = document.documentElement;

2.增加节点

let fa = document.querySelectorAll('.father')[0]; fa.append('hello') fa.innerHTML='<h1>hello</h1>' //插入html代码携带样式 fa.innerText = '<h1>hello</h1>' //插入文章不携带样式 fa.innerHTML = fa.innerHTML + 'hello' console.log(fa.innerHTML) //创建文本节点 let text = document.createTextNode('hello') //创建元素节点 let tag = document.createElement('Hi'); tag.appendChild(text) fa.appendChild(tag)

3.删除

//删除节点 <ul> <li>1</li> <li>2</li> <li>3</li> </ul> //先获取父节点 let oul = document.querySelector('ul') //在获取子节点 let oLi = document.querySelectorAll('li')[1] oul.removeChild(oLi)

4.替换

//替换 //获取父节点 let oUl = document.querySelector('ul') //再次获取子节点 let oLi = document.querySelectorAll('li'); //必须是同一个父亲 oUl.replaceChild(oLi[1],oLi[0]) //将两个节点进行一下替换

5.插入inserBefore()

//先获取父节点 let oUl = document.querySelector('ul') //在获取子节点 let oLi = document.querySelectorAll('li'); let other = document.createElement('a') other.innerHTML = '百度' //必须是同一个父亲 oUl.insertBefore(other,oLi[1])

总结:

// 1.创建新节点(document调用) createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元素 createTextNode() //创建一个文本节点 // 2.添加,移除,替换,插入(父元素调用) appendChild() //添加 removeChild() //移除 replaceChild() //替换 insertBefore() //插入 // 3.查找(document调用) getElementByTagName() //通过标签名称一组元素 getElementByName() //通过元素name属性的值,一组元素 getElementById() //通过元素ID,唯一性单个元素 getElementByClassName() //通过c元素lass获取,一组元素 qurySelectorAll('选择器') //通过选择器获取一组元素 qurySelector('选择器') //通过选择器获取单个元素 //关系(元素调用前三个父元素调用) childNodes //获取所有子节点 children //虎丘所有的子元素节点(常用) firstElementChild //获取第一个元素 lastElementChild //获取最后一个元素 parentNode //获取当前节点的父节点 previousElementSibling //获取当前节点的前一个兄弟元素 nextElementSibling //获取当前节点的最后一个兄弟元素

参考资料:
https://blog.csdn.net/weixin_43638968/article/details/109247181


__EOF__

本文作者HuangJiaZ
本文链接https://www.cnblogs.com/HuangJiaZ/p/16653147.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   HuangJiaZ  阅读(29)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示