Có chức năng như document.getElementById("FirstDiv").clear()
không?Làm cách nào để xóa nút con bằng HTML bằng JavaScript?
Trả lời
Để trả lời câu hỏi ban đầu - có rất nhiều cách để làm điều này, nhưng sau sẽ là đơn giản nhất.
Nếu bạn đã có một tay cầm đến nút con mà bạn muốn loại bỏ, nghĩa là bạn có một biến JavaScript chứa một tham chiếu đến nó:
myChildNode.parentNode.removeChild(myChildNode);
Rõ ràng, nếu bạn không sử dụng một trong những nhiều thư viện mà đã làm được điều này, bạn sẽ muốn tạo một hàm để trừu tượng này ra:
function removeElement(node) {
node.parentNode.removeChild(node);
}
EDIT: Như đã đề cập bởi những người khác: nếu bạn có bất cứ xử lý sự kiện có dây lên đến nút bạn đang xóa, bạn sẽ muốn chắc chắn rằng bạn ngắt kết nối những người đó trước khi tham chiếu cuối cùng đến nút bị xóa đi ngoài phạm vi, vì sợ rằng sự triển khai kém của bộ nhớ rò rỉ thông dịch JavaScript.
Bằng cách "triển khai kém". Bạn có nghĩa là IE6, IE7, IE8 hay cái gì khác? (đặc biệt, các trình duyệt tốt có bị rò rỉ bộ nhớ không? Tôi hiện không quan tâm nữa cho IE 6-7.) –
@CamiloMartin - không chắc chắn về các chi tiết cụ thể trong những ngày này, nhưng theo như tôi nhớ, các trình duyệt 'tốt' có nghĩa vụ phải xem những thứ như vậy và xử lý nó. YMMV –
Vâng, điều đó có ý nghĩa. –
Bạn sẽ có thể sử dụng phương thức .RemoveNode của nút hoặc phương thức .RemoveChild của nút cha.
removeNode chỉ là IE. –
Nếu bạn muốn xóa div và loại bỏ tất cả các nút con, bạn có thể đặt:
var mydiv = document.getElementById('FirstDiv');
while(mydiv.firstChild) {
mydiv.removeChild(mydiv.firstChild);
}
Bạn có lẽ nên sử dụng một thư viện JavaScript để làm những việc như thế này. Ví dụ: MochiKit có chức năng removeElement và jQuery có remove.
Bạn cần phải loại bỏ bất kỳ xử lý sự kiện bạn đã đặt trên nút trước khi bạn gỡ bỏ nó, để tránh rò rỉ bộ nhớ trong IE
IE8 có bị rò rỉ không? –
Một jQuery giải pháp
HTML
<select id="foo">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Javascript
// remove child "option" element with a "value" attribute equal to "2"
$("#foo > option[value='2']").remove();
// remove all child "option" elements
$("#foo > option").remove();
Tài liệu tham khảo:
Attribute Equals Selector [name=value]
Chọn các phần tử có thuộc tính được chỉ định được chỉ định với giá trị chính xác bằng một giá trị nhất định.
Child Selector (“parent > child”)
Chọn tất cả các phần tử con trực tiếp định bởi "con" của các yếu tố theo quy định của "cha mẹ"
Tương tự như .empty (), the .remove() phương thức lấy các phần tử ra khỏi DOM. Chúng tôi sử dụng .remove() khi chúng tôi muốn xóa chính phần tử đó, cũng như mọi thứ bên trong nó. Ngoài các chính các phần tử , tất cả các sự kiện bị ràng buộc và dữ liệu jQuery được liên kết với các yếu tố này sẽ bị xóa.
Sử dụng đoạn mã sau:
//for Internet Explorer
document.getElementById("FirstDiv").removeNode(true);
//for other browsers
var fDiv = document.getElementById("FirstDiv");
fDiv.removeChild(fDiv.childNodes[0]); //first check on which node your required node exists, if it is on [0] use this, otherwise use where it exists.
targetNode.remove()
này được khuyến khích bởi W3C càng về cuối năm 2015, và là vani JS. Cách tốt hơn/sạch hơn so với phương pháp trước đó.
Đối với trường hợp sử dụng của bạn:
document.getElementById("FirstDiv").remove();
Nếu bạn cần một polyfill để đảm bảo tính tương thích ngược:
if (!('remove' in Element.prototype)) {
Element.prototype.remove = function() {
if (this.parentNode) {
this.parentNode.removeChild(this);
}
};
}
var p=document.getElementById('childId').parentNode;
var c=document.getElementById('childId');
p.removeChild(c);
alert('Deleted');
p là nút cha và c là nút con
parentNode là một Biến JavaScript chứa tham chiếu gốc của phụ huynh
Dễ hiểu
- 1. Làm thế nào để xóa vùng văn bản bằng một nút trong html bằng cách sử dụng javascript?
- 2. xóa nút html bằng cách sử dụng js
- 3. Làm sạch HTML bằng JavaScript
- 4. Làm cách nào để nối thêm một loạt các nút con vào nút cha trong một thao tác bằng JavaScript?
- 5. làm thế nào để có được các nút con trong div bằng javascript
- 6. Làm thế nào để giải mã HTML unicode bằng JavaScript?
- 7. Xóa ký tự bằng nút
- 8. Làm thế nào để gọi một asp: Nút OnClick sự kiện bằng cách sử dụng JavaScript?
- 9. Làm thế nào để kiểm tra xem một nút được nhấp bằng cách sử dụng JavaScript
- 10. Làm cách nào để truy xuất nút cha bằng XQuery?
- 11. Jsoup - Làm thế nào để xóa sạch html bằng cách thoát không xóa html không mong muốn?
- 12. Làm cách nào để tạo trang chính bằng HTML?
- 13. Làm cách nào để xóa thêm khoảng trắng bằng javascript hoặc jquery?
- 14. Thêm/xóa HTML bên trong div bằng cách sử dụng JavaScript
- 15. Javascript - số nút con
- 16. Làm cách nào để cắt chuỗi con khỏi chuỗi ký tự bằng cách sử dụng Javascript?
- 17. Làm cách nào để thêm hàng bảng html phụ khi nhấp vào nút bằng jQuery?
- 18. Tải Tài nguyên trên HTML bằng JavaScript
- 19. Làm cách nào để tạo nút xóa trên mỗi hàng bằng plugin SlickGrid?
- 20. làm cách nào để xóa nút phụ
- 21. Làm cách nào để xóa chuỗi con khỏi phần cuối của chuỗi bằng Python?
- 22. Làm cách nào để tạo biểu mẫu động bằng JavaScript?
- 23. Làm cách nào để thay đổi ID của phần tử HTML bằng JavaScript?
- 24. Làm cách nào để nhận được các giá trị html <td> bằng javascript?
- 25. Làm cách nào để hiển thị html (được xử lý bằng Javascript) trong điều khiển WebBrowser?
- 26. Làm cách nào để thay đổi tùy chọn đã chọn HTML bằng JavaScript?
- 27. Làm cách nào để tắt và bật lại nút bằng javascript?
- 28. Làm cách nào để tách HTML trong chuỗi bằng Perl?
- 29. Làm cách nào để gấp/mở thẻ HTML bằng Vim
- 30. Làm cách nào để nhận HTML của tweet bằng LinqToTwitter?
'node.remove();' là cách hiện đại để thực hiện việc này. 'document.getElementById (" FirstDiv "). remove();' cho trường hợp sử dụng của bạn – Gibolt