<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body id="dv">
<script type="text/javascript">
var newArr = '<ul>';
for(var i=0; i<10; i++){
newArr +='<li>' + '</li>';
}
newArr +='</ul>';
// 在頁面中找到第0 個 li 標籤
var li = document.querySelector('li');
var anthor = document.createElement('a');
anthor.innerHTML = '連接';
anthor.href = '#';
//這裏 會報錯 由於 找不到 li
li.appendChild(anthor);
var dv = document.querySelector('#dv');
dv.innerHTML = newArr;
</script>
</body>
</html>
複製代碼
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body id="dv">
<!-- 由於body 裏面存在了 script 標籤會被覆蓋因此 咱們要在下面
增長一個 新的容器 -->
<div id="dv"></div>
<script type="text/javascript">
var newArr = '<ul>';
for(var i=0; i<10; i++){
newArr +='<li>' + '</li>';
}
newArr +='</ul>';
var dv = document.querySelector('#dv');
dv.innerHTML = newArr;
// 在頁面中找到第0 個 li 標籤
var li = document.querySelector('li');
var anthor = document.createElement('a');
anthor.innerHTML = '連接';
anthor.href = '#';
//這裏 會報錯 由於 找不到 li
li.appendChild(anthor);
</script>
</body>
</html>
複製代碼
如何插入(insert) 元素
語法:
父元素:insertBefore(新元素)
含義:
將'新元素' 插入到 頁面年終的元素的 前面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="dv">
<p>111</p>
<p class="target">222</p>
<p>333</p>
</div>
</body>
<script>
// 語法:
// 父元素 .insertBefore(新元素,頁面中的元素)
// 單詞:target:目標
// 一、建立元素
// 二、插入到頁面上
var p = document.createElement('p');
p.innerHTML = "我是一個被建立出來的新標籤";
var parent = document.querySelector('.dv');
var target = document.querySelector('.target');
parent.insertBefore(p, target)
// 技術點 獲取父元素 和頁面中的元素 新元素是建立出來的,不可使用字符串
</script>
</html>
元素只有向前插入沒有向後插入的一說 謹記
複製代碼
語法 :
父元素. removeChild(子元素);
含義:
從父元素中刪除子元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="dv">
<p>111</p>
<p class="target">222</p>
<p>333</p>
</div>
</body>
<script>
// 語法
// 父元素.removeChild(子元素)
// 獲取父元素與你須要移除的子元素
// 調用方法移除
var parent = document.querySelector('.dv');
var target = document.querySelector('.target');
parent.removeChild(target);
</script>
</html>
複製代碼
父元素.replace('替換元素','父元素');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="dv">
<p>111</p>
<p class="target">222</p>
<p>333</p>
</div>
</body>
<script>
var p = document.createElement('p');
p.innerText = "這裏是替換的";
var dv = document.querySelector('.dv');
var target = document.querySelector('.target');
dv.replaceChild(p, target);
</script>
</html>
複製代碼
cloneNode 與移動DOM 元素 重要
元素.cloneNode()
拷貝該元素,並返回該元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="dv">
<p>111</p>
<p>222</p>
<p>333</p>
</div>
</body>
<script>
var a = document.createElement('a')
a.innerHTML = '建立a標籤';
a.href = "#";
var dv = document.querySelector('.dv');
// dv.children[0].appendChild(a);
// 這時候你就會發現 a從零標籤一進到了 a標籤,由於每一個元素只能有一個父節點
dv.children[1].appendChild(a);
</script>
</html>
元素.cloneNOde(true)
拷貝該元素,機器全部的後代元素,並返回 ,要是不添加true 的話就不會拷貝子元素
元素中若是綁定了事件,cloneNode是不會拷貝事件
var dv = document.querySelector('.dv');
dv.children[0].appendChild(a);
// 這時候你就會發現 a從零標籤一進到了 a標籤,由於每一個元素只能有一個父節點
dv.children[1].appendChild(a.cloneNode(true));
複製代碼
得到計算屬性 樣式操做
style 只能處理行內樣式,沒法處理嵌入樣式
點擊一下 盒子 像右移動100 px
若是第一次獲取元素的樣式值的時候,樣式不是行內樣式,是寫在外部的就沒法使用style獲取
應該使用計算樣式 !!!
window.getcomputedStyle(元素);
該方法會返回這個元素的 全部計算樣式的對象
細節:
寫css 的規則是:
先寫定位在寫尺寸,在寫位置,在寫尺寸,在寫邊框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box {
position: absolute;
left: 100px;
top: 100px;
border: 1px solid pink;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<button>點擊</button>
<div class="box"></div>
</body>
<script>
var btn = document.querySelector('button');
btn.onclick = function () {
// 要讓盒子 向右移動就須要給盒子的left + 上一個數字
// 全部就須要先得到盒子原有的left 值
var box = document.querySelector('.box');
var left = box.style.left || window.getComputedStyle(box).left;
// var left = box.style.left || window.getcomputedStyle(box)
// 這裏 顯示的總體的css
console.log(left)
left = parseInt(left);
left += 100;
left += 'px';
console.log(left)
// 賦值回去
box.style.left = left
}
</script>
</html>
複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<input type="text" value="0"><button>+</button>
</body>
<script>
// 1找到按鈕
var btn = document.querySelector('button');
var txt = document.querySelector('input');
// 二、在事件處理函數中要去除文本框中的數字,先轉換 而後加完在賦值回去
btn.onclick = function () {
var num = txt.value //取出來的是字符串
num = num - 0;
num++;
txt.value = num;
}
// 三、因爲咱們須要頻繁的 進行點擊行爲,全部咱們將文本框在外面獲取
</script>
</html>
複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<button class="sub">-</button>
<input type="text" value="0">
<button class="add">+</button>
</body>
<script>
var sub = document.querySelector('.sub')
var add = document.querySelector('.add')
var txt = document.querySelector('input')
// 減法的方式
sub.onclick = function () {
var num = txt.value;
parseInt(num);
num--;
txt.value = num
if (num <= 0) {
txt.value = 0;
}
}
// 加法的方式
add.onclick = function () {
var num = txt.value;
num - 0;
num++;
txt.value = num;
}
</script>
</html>
複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<!-- 拼接字符串必定要有一個盒子 -->
<div class="dv"></div>
</body>
<script>
var data = [{
txt: 'js',
url: 'www.MEN.com'
},
{
txt: 'js',
url: 'www.MEN.com'
},
{
txt: 'js',
url: 'www.MEN.com'
},
{
txt: 'js',
url: 'www.MEN.com'
},
{
txt: 'js',
url: 'www.MEN.com'
}
]
var html = '<ul>';
for (var i = 0; i < data.length; i++) {
html += '<li><a href="' + data[i].url + '"> ' + data[i].txt + '</a></li>';
}
html += '</ul>';
var dv = document.querySelector('.dv')
dv.innerHTML = html;
</script>
</html>
複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
var ul = document.createElement('ul');
for (var i = 0; i < 10; i++) {
var li = document.createElement('li');
var a = document.createElement('a');
a.innerHTML = "我是一個動態建立的";
a.href = '#';
li.appendChild(a);
ul.appendChild(li);
}
document.body.appendChild(ul);
</script>
</html>
<!--
建立一個ul 列表
-->
複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
var data = [{
txt: 'js',
url: 'www.men.com'
},
{
txt: 'api',
url: 'www.youtube.com'
},
{
txt: 'js高級',
url: 'www.fackebook.com'
}
]
var ul = document.createElement('ul');
for (var i = 0; i < data.length; i++) {
var li = document.createElement('li');
var a = document.createElement('a');
a.innerHTML = data[i].txt;
a.href = data[i].url;
li.appendChild(a);
ul.appendChild(li);
}
document.body.appendChild(ul);
</script>
</html>
複製代碼
var start = +new Date()javascript
var end = +new Date()css
console.log(end -start)html
你們謹記要在內存中處理完成後再加載到頁面上 !!!vue
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
var table = document.createElement('table');
table.border = '1';
table.style.width = '800px;';
table.style.borderCollapse = 'collapse'; //細 邊框表格
var thead = document.createElement('thead');
table.appendChild(thead)
var th_tr = document.createElement('tr');
thead.appendChild(th_tr);
th_tr.style.backgroundColor = 'pink';
var ths = ['js', 'api', '高級js', '閉包', 'vue'];
for (var i = 0; i < ths.length; i++) {
var th = document.createElement('th');
th.innerHTML = ths[i];
th_tr.appendChild(th);
}
var tbody = document.createElement('tbody');
table.appendChild(tbody);
// 循環建立每個行
for (var i = 0; i < 10; i++) {
var tr = document.createElement('tr');
table.appendChild(tr);
if (i % 2 === 1) {
tr.style.backgroundColor = 'pink'
}
for (var j = 0; j < ths.length; j++) {
var td = document.createElement('td');
td.innerHTML = '建立';
tr.appendChild(td);
}
}
document.body.appendChild(table);
</script>
</html>
複製代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
html,
body {
height: 100%;
;
}
.active {
height: 100%;
background-color: black
}
</style>
</head>
<body>
<button>開關燈</button>
<div class="active"></div>
</body>
<script>
var btn = document.querySelector('button');
var active = document.querySelector('.active')
var flag = true;
btn.onclick = function () {
if (flag) {
active.className = ''
flag = false;
} else {
active.className = 'active'
flag = true;
}
}
</script>
</html>
複製代碼