Js DOM
前端
0
340
0
发表于: 2020-05-31 17:44:12
简介: 暂无~
什么是DOM
DOM,文档对象模型(Document Object Model)。
HTMLCollection 对象
注意:IE9及以上版本才支持!
根据id获取元素,返回一个:document.getElementById()
根据标签获取元素,返回多个:document.getElementsByTagName()
根据选择器或标签获取第一个元素,返回一个:document.querySelector()
根据选择器或标签获取所有元素,返回多个:document.querySelectorAll()
<body>
<div id="wrap">
<p class="ppp">我是p1</p>
<p class="ppp">我是p2</p>
<span>我是span</span>
</div>
<script>
var ele = document.getElementById('wrap')
console.log(ele); //<div id="wrap">...</div>
var ele1 = document.getElementsByTagName('p')
console.log(ele1); //HTMLCollection(2) [p, p]
console.log(ele1[0]); //<p class="ppp">我是p1</p>
var ele2 = document.getElementsByClassName('ppp')
console.log(ele2); //HTMLCollection(2) [p.ppp, p.ppp]
console.log(ele2[0]); //HTMLCollection(2) [p.ppp, p.ppp]
var ele3 = document.querySelector('#wrap')
console.log(ele3); //<div id="wrap">...</div>
var ele4 = document.querySelector('p')
console.log(ele4); //<p class="ppp">我是p1</p>
var ele5 = document.querySelectorAll('p')
console.log(ele5); //NodeList(2) [p, p]
console.log(ele5[0]); //<p class="ppp">我是p1</p>
</script>
</body>
创建新的HTML元素 - appendChild()
要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。
创建一个新的元素:document.createElement()
创建一个新的文本节点:document.createTextNode()
在一个已存在的元素的尾部添加元素:appendChild()
在一个已存在的元素的开头添加元素:insertBefore(‘要添加的元素’,‘已存在的元素’)
<body>
<div id="ele">
<p id="firstp">我是firstp</p>
<p id="secondp">我是secondp</p>
</div>
<script>
// 创建一个新的元素
var ele1 = document.createElement('p')
// 创建一个新的文本节点
var ele2 = document.createTextNode('我是新增的p')
// 将文本节点添加到元素中
ele1.appendChild(ele2)
var ele = document.getElementById('ele')
// 在一个已存在的元素的末尾添加元素
// ele.appendChild(ele1)
var secondp = document.getElementById('secondp')
// 在一个已存在的元素的开头添加元素
ele.insertBefore(ele1, secondp)
</script>
</body>
移除已存在的元素 - removeChild()
要移除一个元素,你需要知道该元素的父元素。
<body>
<div id="ele">
<p id="firstp">我是firstp</p>
<p id="secondp">我是secondp</p>
</div>
<script>
var ele = document.getElementById('ele')
var firstp = document.getElementById('firstp')
ele.removeChild(firstp)
</script>
</body>