節點操作(刪除,複製)/案例1:刪除留言板的留言 /案例2:動態生成表格
節點刪除
node.removeChild(child)
從DOM中刪除一個子節點,返回刪除的節點
<body>
<button>刪除</button>
<ul>
<li>熊大</li>
<li>熊二</li>
<li>光頭強</li>
</ul>
<script>
var btn = document.querySelector("button");
var ul = document.querySelector("ul");
btn.onclick = function () {
if (ul.children.length == 0) {
this.disabled = true;
alert("沒有節點了");
} else {
//node.removeChild(child) 刪除一個子節點
ul.removeChild(ul.children[0]);
}
};
</script>
</body>
案例1:刪除留言板的留言
分析:
- 當我們把文字域裡面的值賦值給li的時候,多新增一個刪除的連結
- 需要把所有的連結獲取過來,當我們點選當前的連結時,刪除當前連線所在的li
- 阻止連結跳轉需要新增javascript(0),或者 javascript::
<body>
<textarea name="" id=""></textarea>
<button>釋出</button>
<ul></ul>
<script>
var btn = document.querySelector("button");
var text = document.querySelector("textarea");
var ul = document.querySelector("ul");
btn.onclick = function () {
if (text.value == null) {
alert("您輸入的資訊為空");
return false;
} else {
var li = document.createElement("li");
var a = document.createElement("a");
li.innerHTML = text.value + "<a href = 'javascript::'>刪除</a>";
// href = 'javascript::'表示這是一個不會跳轉的連結
ul.insertBefore(li, ul.children[0]);
//刪除元素 刪除的是當前連結的li 它的父親
var as = document.querySelectorAll("a");
for (var i = 0; i < as.length; i++) {
as[i].onclick = function () {
//當前a所在的li this.parentNode
ul.removeChild(this.parentNode);
};
}
}
};
</script>
</body>
節點複製
node.cloneNode()
方法返回撥用該節點的一個副本,也稱為克隆節點/拷貝節點
如果括號引數為空或者為false,則是淺拷貝,即只克隆複製節點本身,不克隆裡面的子節點
如果括號引數為true,則是深拷貝,即不僅克隆複製節點本身,也克隆裡面的子節點
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<script>
var ul = document.querySelector("ul");
var lili = ul.children[0].cloneNode(); //複製ul裡面的第一個li,傳遞給lili 但沒有內容,因為是淺拷貝
ul.appendChild(lili);//把lili新增到ul的後面
</script>
</body>
案例2:動態生成表格
分析:
- 因為裡面的資料都是動態的,需要js動態生成,這裡模擬好資料,自己定義好資料,資料採取物件形式儲存
- 所有的資料都放在tbody裡面的行裡
- 因為行很多,需要迴圈建立多個行,根據物件的長度建立(對應人數)
- 每個行裡面又有多個單元格(對應裡面的資料),採取遍歷物件的方式迴圈建立多個單元格( for ( k in obj) 形式),並把資料存入(雙重for迴圈)
- 最後一列單元格是刪除,需要單獨建立單元格
<body>
<table cellspacing="0">
<thead>
<tr>
<th>姓名</th>
<th>科目</th>
<th>成績</th>
<th>操作</th>
</tr>
</thead>
<tbody></tbody>
</table>
<script>
//1.先準備好學生的資料
var datas = [
{
name: "周九良",
subject: "javascript",
score: 100,
},
{
name: "朱一龍",
subject: "javascript",
score: 100,
},
{
name: "張新成",
subject: "javascript",
score: 100,
},
{
name: "許嵩",
subject: "javascript",
score: 100,
},
];
//1.往tbody裡面建立行,根據人數來建立(資料的長度)
var tbody = document.querySelector("tbody");
for (var i = 0; i < datas.length; i++) {
//建立tr行
var tr = document.createElement("tr");
tbody.appendChild(tr);
//3.行裡面建立單元格(跟資料有關係的三個單元格) tr 單元格的數量取決於每個物件裡面的屬性個數
//遍歷物件 datas[i]
for (k in datas[i]) {
//k 得到的是屬性名 datas[i][k]得到的是屬性值
//建立單元格
var td = document.createElement("td");
//把物件裡面的屬性值 給td
td.innerHTML = datas[i][k]; //把物件裡面的屬性值 datas[i][k]給 td
tr.appendChild(td);
}
//3.建立有刪除2個字的單元格
var td = document.createElement("td");
td.innerHTML = "<a href = 'javascript::'>刪除</a>";
tr.appendChild(td);
}
//4.點選刪除按鈕時 刪除整個行
var as = document.querySelectorAll("a");
for (var i = 0; i < as.length; i++) {
as[i].onclick = function () {
//點選a 刪除當前a所在的行 當前a所在的li this.parentNode
tbody.removeChild(this.parentNode.parentNode); //刪除的是a父節點的父節點
};
}
</script>
</body>
相關文章
- 解析postgresql 刪除重複資料案例SQL
- 怎樣新增、刪除、移動、複製、建立、查詢節點
- Hyperledger Fabric節點的動態新增和刪除
- redis cluster節點/新增刪除操作Redis
- jQuery動態新增和刪除表格行jQuery
- jQuery動態新增和刪除表格記錄jQuery
- 動態建立具有刪除行按鈕的table表格
- XML DOM 刪除節點概述XML
- python檔案操作-讀寫刪除複製總結Python
- Linux的VI (刪除貼上,複製)Linux
- 工作293:調節刪除順序刪除
- 牛客(刪除連結串列中重複節點)
- JZ18刪除表的節點
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- DOM節點刪除方法小結
- mongodb副本集新增刪除節點MongoDB
- JZ76 刪除連結串列中重複的節點
- JavaScript刪除table表格中行JavaScript
- networkx基礎用法:新增節點、新增邊、刪除節點、刪除邊、計算度、賦權重
- Oracle億級大表高效刪除案例分析Oracle
- 點選新增或者刪除表格行詳解
- 劍指offer-----刪除連結串列中的重複節點
- js中dom節點刪除remove方法JSREM
- Vue+Element+JS動態生成form表單實現新增和刪除操作VueJSORM
- Laravel 軟刪除操作Laravel
- 13. O(1)時間刪除連結串列節點
- [Kubernetes]node節點pod無法啟動/節點刪除網路重置
- VSCode刪除重複的空行VSCode
- JavaScript 動態新增與刪除元素JavaScript
- jQuery列表動態增加和刪除jQuery
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- leetcode----刪除連結串列中的節點LeetCode
- mysql 刪除重複項MySql
- DataFrame刪除複合索引索引
- 刪除oracle重複值Oracle
- JavaScript 刪除重複字元JavaScript字元
- 刪除重複資料
- jQuery table表格行的新增和刪除jQuery