<!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>
复制代码