0%

jQuery 筆記 - 移除元素 remove()

trash can

之前在專案上有使用到 hide() 語法,將元素隱藏,但這次因為是用 table 表單記錄資料,為了正確刪除資料而不是隱藏 DOM 元素,使用 remove() 將該元素從網頁刪除。

hide()

使用 hide()的話,可以打開瀏覽器會看到透過按鈕隱藏的 DOM 元素,變成了 display:none; 這代表網頁只是將其隱藏而非刪除,在畫面上雖然都消失了,但因 hide() 的權重較高,比較不建議這樣做「刪除」的動作。

HTML

1
2
<button class="btn jq-removeBtn">Remove</button>
<p class="text">這是一段文字,點擊按鈕後我會被隱藏。</p>

JS

1
2
3
4
$(".jq-removeBtn").click(function (e) {
e.preventDefault();
$(".text").hide();
});

remove()

採用 remove() 就真的是將 DOM 元素從網頁移除。這邊練習一個常見的 table 表單寫法,下方有個表單結構與樣式,並且要在點擊按鈕後刪除自身該筆資料。

HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<table>
<thead>
<tr>
<th>NAME</th>
<th>PHONE</th>
<th>EMAIL</th>
<th>OHTER</th>
<th>DELETE</th>
</tr>
</thead>

<tbody>
<tr>
<td>Tim</td>
<td>0912-345678</td>
<td>tim@email.com</td>
<td></td>
<td><button class="btn jq-delete">刪除</button></td>
</tr>

<tr>
<td>Tim</td>
<td>0912-345678</td>
<td>tim@email.com</td>
<td></td>
<td><button class="btn jq-delete">刪除</button></td>
</tr>

<tr>
<td>Tim</td>
<td>0912-345678</td>
<td>tim@email.com</td>
<td></td>
<td><button class="btn jq-delete">刪除</button></td>
</tr>

<tr>
<td>Tim</td>
<td>0912-345678</td>
<td>tim@email.com</td>
<td></td>
<td><button class="btn jq-delete">刪除</button></td>
</tr>
</tbody>
</table>

JS

當我綁定按鈕並給予點擊事件後,讓他找到按鈕自己,然後再找到 td,再找到 tr,然後把 tr 移除,就完成把表單資料的移除功能囉!

1
2
3
$(".jq-delete").click(function () {
$(this).parent().parent().remove();
});