Cách dùng insertAfter trong Javascript
Trong bài này mình sẽ giới thiệu hàm insertAfter trong javascript, đây là hàm giúp chèn thêm các thẻ html vào sau một thẻ html nào đó.
Thật đáng tiếc là hiện tại javascript chưa hỗ trợ hàm insertAfter. Vì vậy mình sẽ giúp bạn tự tạo ra một hàm insertAfter cực kì dễ dàng.
Trong jQuery thì chúng ta có hàm $('selector').after()
. Tuy nhiên, chúng ta đang sử dụng javascript thuần nên bạn có thể sử dụng hàm mình xây dựng trong bài này nhé.
insertAfter trong javascript là gì?
insertAfter javascript là một hàm được tạo ra nhằm mục đích giúp ta chèn các thẻ html vào đằng sau một thẻ khác. Hàm này không có sẵn trong thư viện của js, mà bạn phải tự tạo nó.
Bài viết này được đăng tại [free tuts .net]
Javascript có hỗ tợ hàm insertBefore, hàm này có công dụng là chèn các thẻ html vào phía trước một thẻ được chỉ định. Vì vậy, ta sẽ áp dụng hàm này với một thủ thuật đơn giản để tạo ra hàm insertAfter
:
- Đầu tiên, chọn nút anh em tiếp theo của nút hiện có.
- Sau đó, chọn nút cha của nút hiện có và gọi phương thức insertBefore () trên nút cha để chèn một nút mới trước nút anh em đó.
Cụ thể hàm này như sau:
function insertAfter(newNode, existingNode) { existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling); }
Để hiểu được hàm trên thì bạn phải hiểu hai khái niệm insertBefore và nextSibling. Hãy click vào link để đọc nhé.
Cách sử dụng insertAfter javascript
Bây giờ mình sẽ làm một ví dụ về cách dùng hàm insertAfter ở trên nhé.
<ul> <li>HTML</li> <li id="menu">CSS</li> <li>jQuery</li> </ul> <p> <input type="button" value="Chèn" onclick="insertAfterMenu()"/> </p> <script> function insertAfter(newNode, existingNode) { existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling); } function insertAfterMenu(){ let menu = document.getElementById('menu'); let li = document.createElement('li'); li.textContent = "Javascript"; insertAfter(li, menu); } </script>
Khi click vào button thì sẽ chèn một node vào thẻ div có id là menu.