Hàm appendChild trong Javascript - Thêm một node vào vị trí cuối cùng
Trong bài này chúng ta sẽ học cách sử dụng hàm appendChild trong Javascript, đây là hàm dùng để bổ sung một DOM Node vào vị trí cuối cùng của một DOM Node khác.
Ví dụ, bạn có một thẻ div
và bên trong thẻ div có 10 thẻ p
. Nếu bạn muốn bổ sung một thẻ bất kì vào vị trí thứ 11 thì có thể sử dụng hàm appendChild .
Hàm này có một tham số truyền vào, đó phải là một DOM Node. Cú pháp như sau:
node.appendChild(node_append);
1. Thêm một thẻ HTML vào hàm appendChild
Giả sử mình có cấu trúc HTML như sau.
Bài viết này được đăng tại [free tuts .net]
<div id="wrapper"> <p>Chào mừng các bạn đến với freetuts</p> </div> <input type="button" value="Add String"/>
Bây giờ mình muốn viết chương trình khi click vào nút button thì sẽ thêm một thẻ p có nội dung là "Học Javascript tại freetuts miễn phí" vào vị trí cuối cùng bên trong thẻ div.
Đây chính là hàm xử lý:
function addString(){ var node = document.getElementById('wrapper'); // Tạo một thẻ p theo yêu cầu var p = document.createElement('p'); p.innerHTML = "Học Javascript tại freetuts miễn phí"; // Thêm nó vào node node.appendChild(p); }
2. Thiết lập nội dung html thông qua hàm createTextNode
Nếu bạn muốn bổ sung một đoạn text thì có thể sử dụng hàm createTextNode
để tạo một text node. Text node bản chất vẫn là DOM Node, nhưng bản thân nó chỉ là một đoạn text chứ không phải một thẻ HTML.
<div id="wrapper"> Chào mừng các bạn đến với </div> <input type="button" onclick="addString()" value="Add String"/> <script> function addString() { var node = document.getElementById('wrapper'); // Tạo một thẻ p theo yêu cầu var textNode = document.createTextNode(" freetuts.net"); // Thêm nó vào node node.appendChild(textNode); } </script>
Tóm lại, hàm appendChild trong js có công dụng là bổ sung một node vào vị trí cuối cùng bên trong một node khác. Nó có công dụng giống như phương thức append trong jQuery, điểm khác biệt duy nhất là đối với appendChild thì bắt buộc phải truyền vào một Dom Node, còn jQuery thì có thể là một Dom Node hoặc một chuỗi HTML.