節點操作(刪除,複製)/案例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
- 如何刪除複製到Excel表格中的超連結Excel
- JavaScript刪除節點自身JavaScript
- Oracle Rac 刪除節點Oracle
- layui動態新增刪除表格,並獲取表格中的值UI
- 【RAC】刪除RAC資料庫節點(二)——刪除ASM資料庫ASM
- 【RAC】刪除RAC資料庫節點(五)——刪除ONS資料庫
- 動態建立具有刪除行按鈕的table表格
- java檔案和資料夾複製、刪除、移動操作Java
- jQuery如何刪除元素節點jQuery
- 【RAC】刪除RAC資料庫節點(三)——刪除監聽資料庫
- 工作293:調節刪除順序刪除
- RAC 節點2刪除自己的歸檔指令碼指令碼
- JZ18刪除表的節點
- onnx 增刪改查,修改節點,刪除節點,修改input,output
- jQuery實現的表格新增或者刪除行操作jQuery
- mongodb副本集新增刪除節點MongoDB
- Hadoop增加和刪除節點Hadoop
- Hadoop2.7實戰v1.0之動態新增、刪除DataNode節點及複製策略導向Hadoop
- sql查詢案例:刪除2條完全一樣的資料SQL
- JZ76 刪除連結串列中重複的節點
- javascript實現的動態新增和刪除表格行程式碼JavaScript行程
- python檔案操作-讀寫刪除複製總結Python
- Linux的VI (刪除貼上,複製)Linux
- javascript動態刪除和新增表格行程式碼例項JavaScript行程
- Linux檔案的複製、刪除和移動命令Linux
- JavaScript刪除table表格中行JavaScript
- JavaScript刪除table表格列JavaScript
- openstack中徹底刪除計算節點的操作記錄
- goldengate 刪除複製程式步驟Go
- 11G R2 RAC新增刪除節點
- centos 檔案新建、刪除、移動、複製等命令CentOS
- Oracle億級大表高效刪除案例分析Oracle