DOM:文档对象模型
核心
浏览器网页就是一个Dom树形结构!
要操作一个Dom节点,就必须要先获得这个Dom节点
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="father">
<h1>标题一</h1>
<h1>标题二</h1>
<p id="p1">p1</p>
<p class="p2">p2</p>
</div>
<script>
let h1 = document.getElementsByTagName('h1');
let p1 = document.getElementById('p1');
let p2 = document.getElementsByClassName('p2');
let father = document.getElementById('father');
let childrens = father.children;// 获取父节点下的所有子节点
// father.firstChild;
// father.lastChild;
</script>
</body>
</html>
这是原生代码,之后尽量都使用jQuery();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="id1"></div>
<script>
let ss = document.getElementById('id1');
ss.innerText = 'abc';
ss.style.color = 'green'; // 属性使用字符串
ss.style.fontSize = '200px';
</script>
</body>
</html>
删除节点的步骤:先获取父节点,再通过父节点删除自己
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="father">
<h1>标题一</h1>
<h1>标题二</h1>
<p id="p1">p1</p>
<p class="p2">p2</p>
</div>
<script>
let self = document.getElementById(p1);
let father = p1.parentElement;
father.removeChild(self);
</script>
</body>
</html>
注意:删除多个节点的时候,children是在时刻变化的,删除节点的时候一定要注意。
我们获得了某个Dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个Dom节点已经存在元素了,我们就不能这么干了!会产生覆盖
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p id="js">Javascript</p>
<div id="list">
<p id="se">JavaSE</p>
<p id="ee">JavaEE</p>
<p id="me">JavaME</p>
</div>
<script>
let js = document.getElementById('js'),
list = document.getElementById('list');
list.appendChild(js);// 追加到后面,已经存在的节点
// 创建一个新的节点
let NewP = document.createElement('p');// 创建一个 p 标签
NewP.id = 'NewP';
NewP.innerText = 'hello,world';
list.appendChild(NewP);
// 创建一个标签节点
/*let MyScript = document.createElement('script');
MyScript.setAttribute('type','text/javascript');*/
let MyStyle = document.createElement('style');
MyStyle.inneeHTML = 'body{background-color : green}';
document.getElementsByTagName('head')[0].appendChild(MyStyle);
</script>
</body>
</html>
<script>
var js = document.getElementById('js');//已经存在的节点
var list = document.getElementById('list');
//通过JS创建一个新的节点
var newP = document.creatElement('p');//创建一个p标签
newP.id = 'newP';
newP.innerText = 'Hello';
//创建一个标签节点
var myScript = document.creatElement('script');
myScript.setAttribute('type','text/javascript');
//可以创建一个style标签
var myStyle = document.creatElement('style');//创建了一个空style标签
myStyle.setAttribute('type','text/css');
myStyle.innerHTML = 'body{background-color:chartreuse;}';//设置标签内容
document.getElementByTagName('head')[0].appendChild(myStyle);
</script>
insertBefore
var ee = document.getElementById('ee');
var js = document.getElementById('js');
var list = document.getElementById('list');
//要包含的节点.insertBefore(newNode,targetNode)
list.insertBefore(js,ee);