[TOC]
### 1. nodeType查看節點類型
1-->元素節點
2-->屬性節點
3-->文本節點
9-->document
### 2. childNodes-->所有類型的子節點
ie9以下 將childNodes識別為元素節點
children-->只獲取元素子節點
~~~
<ul id="parent">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<script>
// shift+alt+b
var childs = document.getElementById("parent").childNodes;
var childEle = document.getElementById("parent").children;
for(var i=0;i<childs.length;i++){
if(childs[i].nodeType==1){
childs[i].style.color="red";
}
}
</script>
~~~
### 3. 獲取父元素節點 在指定位置添加元素
~~~
/ / parentnode
// parentElement 都是獲取父元素
添加元素
<input type="text" id="text">
<button id="add">添加</button>
<ul id="parent">
</ul>
<script>
var text =document.getElementById("text");
var add =document.getElementById("add");
var parent =document.getElementById("parent");
add.onclick=function(){
var value = text.value;
var li =document.createElement("li");
li.innerHTML=value;
parent.appendChild(li);
}
// parentnode
// parentElement 都是獲取父元素
</script>
~~~
### 4.刪除元素 (找到父元素刪除父節點)
~~~
<ul>
<li>元素<a href="#">刪除</a></li>
<li>元素<a href="#">刪除</a></li>
<li>元素<a href="#">刪除</a></li>
<li>元素<a href="#">刪除</a></li>
<li>元素<a href="#">刪除</a></li>
</ul>
<script>
var a=document.querySelectorAll("ul li a");
console.log(a)
for(let i=0;i<a.length;i++){
a[i].onclick=function(){
this.parentNode.style.display="none";
event.preventDefault();
// 阻止事件的默認屬性 (有兩種方法阻止)
// return false;
}
}
</script>
<script>
/*
insertBefore
insertAfter
removeChild
appendChild
remove
append
prepend
*/
var test = document.getElementById("test");
test.onclick = function(){
this.remove();
}
</script>
~~~
### 5. 將類數組轉換成數組 數組遍歷的方法
~~~
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<script>
var a=document.querySelectorAll("ul li");
// Array.prototype.slice.call(obj) 將類數組轉換成數組
var arr=Array.prototype.slice.call(a);
// forEach方法實現數組遍歷
arr.forEach(function(value,index){
value.onclick=function(){
arr.forEach((value,index)=>{
value.style.color="#333"
})
this.style.color="red"
}
})
</script>
~~~
### childNodes children
~~~
childNodes 獲取子類中所有類型的節點 空格也算
children 只輸出節點
~~~
### 增加
~~~
<style>
img{
width:200px;
}
</style>
</head>
<body>
<div id="parent">
<!-- <img src="images/現代.png" alt=""> -->
<p>hello world</p>
</div>
<script>
// parentNode.appendChild(newElement);
/*
document.createElement()-->創造一個元素節點
*/
var parent = document.getElementById("parent");
var img = document.createElement("img");
img.src="images/現代.png";
img.id="img";
// class屬性特殊,通過className設置
img.className="img";
parent.appendChild(img);
console.log(img);
</script>
~~~
### 插入
~~~
<div id="parent">
<!-- <p>first</p> -->
<p id="one">hello world</p>
</div>
<script>
// parentNode.insertBefore(newElement,targetElement);
var parent = document.getElementById("parent");
var one = document.getElementById("one");
var p = document.createElement("p");
var txt = document.createTextNode("first");
p.appendChild(txt);
console.log(p);
parent.insertBefore(p,one);
</script>
~~~
### 刪除
~~~
<div id="parent">
<div id="child">child</div>
</div>
<script>
// parentNode.removeChild(element)
var parent = document.getElementById("parent");
var child = document.getElementById("child");
child.onclick = function(){
parent.removeChild(child);
}
</script>
~~~
### 替換
~~~
<p id="child">hello world</p>
<script>
/*
parentNode.replaceChild(newElement,oldElement)
*/
var child = document.getElementById("child");
var h1 = document.createElement("h1");
h1.innerHTML="h1";
document.body.replaceChild(h1,child);
</script>
~~~
### 復制
~~~
<div id="parnet">
<div id="one">one</div>
</div>
<script>
// Element.cloneNode(true);
var parent = document.getElementById("parent");
var one = document.getElementById("one");
var clone = one.cloneNode(true);
console.log(clone);
</script>
~~~
- JavaScript介紹
- js基本語法
- 調試方法
- 標識符
- 數據類型(基本,引用)
- 基本數據類型
- 引用數據類型
- 嚴格模式.
- 全局變量和局部變量
- DOM 節點
- DOM 改變元素內容(樣式 內容)
- 節點改變元素內容(通過父子節點找到元素然后操作)
- 添加元素
- 設置 移除 屬性
- DOM下的事件
- 知識點整理
- 異步
- Ajax
- this指向問題
- 設備類型檢測(手機 平板 電腦)
- 函數
- 函數的參數
- 重載
- 數據類型
- 構造函數
- 返回上一個網頁
- 數組 (重點)
- 增加數組內容
- 刪除數組元素
- 復制數組
- 修改數組元素(功能強大實現 增 刪 改)
- 數組元素查詢
- 數組遍歷
- 最值
- 展開語法
- join
- 排序問題
- 求和
- 顛倒數組
- 判斷是不是一個數組
- 二維數組
- 數組和字符串之間轉換
- 數組去重
- 將jquery對象轉為javascript對象
- 元素偏移量
- 獲取一個元素距離頂部的距離
- 可視區域寬高
- 布局視口 (移動設備)
- 文檔碎片
- 表格中的 thead tbody
- 獲取元素寬度
- 滾動區域寬高
- div滾動條設置
- 使用 offsetWidth 設置父元素寬度和子元素寬度之和一樣
- 字符串的方法
- js功能實現
- 點擊顯示 隱藏
- 點擊變色 兄弟元素隱藏.
- 點擊顯示隱藏區域.
- 兼容性問題.
- 選擇按鈕,
- 獲取外部樣式
- 點擊彈出下標
- 通過屬性改變img 的src
- 小米登錄 es6實現js
- try catch
- 小米登錄es5實現js
- js實現導航欄點擊加載多個頁面
- js實現網頁之間的跳轉和在指定div加載頁面
- iframe 高度實現自適應
- js 獲取滾動條距離頂端的距離
- jQuery animate() 方法 動畫效果
- fade(js實現遮罩層漸變色)
- js輪播實現
- 超哥輪播js
- 輪播動畫原理
- 數組實現瀑布流
- 電子表計時器date
- 從豆瓣接口上取數據實現搜索功能(重點!!!!)
- 封裝
- 不使用js-ajax 使用VueResource實現數據請求
- 需要常看的知識點
- 移動端響應布局rem
- rem+vw
- 原型
- JS的模塊化如何解決
- ES5和ES6模塊化寫法
- js內置對象
- 結構賦值es6
- 字符串模板 分割字符串
- 談基本數據類型中的方法(本不帶有方法)
- Math
- date
- 正則
- 備選字符集
- 連號的備選字符集
- replace() 查找替換(過濾)
- 量詞
- 不確定的數量
- search找下標
- test()檢驗是否包含正則表達式
- 實例
- 驗證電話號碼
- 郵箱驗證
- 將指定內容過濾(天貓 淘寶)
- 預定義字符集(簡化)
- 嚴格匹配 ^ $
- Ajax
- http get post
- $.get()和$.post()詳解
- jquery-ajax 數據請求
- 使用Vue Ajax在網頁中渲染數據
- axios向服務器端get,post數據(重點)
- 跨域
- 原生Ajax
- 原理步驟 json解析字符串
- 多態
- js中的面向對象
- js中的類和繼承
- 原型和原型鏈
- 參數表達式
- 字符串中常用的方法
- mock.js
- scrollReveal 滾動顯示
- Node.js模塊里exports與module.exports的區別