HTML - DOM 元素 insertBefore() 方法



insertBefore() 方法允许您在父元素内添加新的子元素,并指定其相对于另一个子元素的位置。

语法

parentElement.insertBefore(newElement, referenceElement);

参数

参数 描述
newElement 要插入到 parentElement 中的元素。
referenceElement 将在其之前插入 newElement 的元素。

返回值

此方法不返回任何值 (undefined)。

HTML DOM 元素 'insertBefore()' 方法示例

以下是一些 insertBefore() 方法指定不同元素插入位置的示例。

在现有元素之前插入

此示例演示如何使用 insertBefore() 方法在现有具有 id 为 "child3" 的<p> 元素之前插入 'newElement'。

<!DOCTYPE html>
<html lang="en">
<head> 
    <title>insertBefore Example</title>
</head>

<body>
    <h1>HTML DOM Element</h1>
    <h2>insertBefore() Method</h2>

    <div id="parent">
    <p id="child1">First Child</p>
    <p id="child3">Third Child</p>
    </div>

    <script>
        var parentElement = document.getElementById("parent");
        var newElement = document.createElement("p");
        newElement.textContent = "Second Child (Inserted)";
        newElement.style.color = "blue";  
        var referenceElement=document.getElementById("child3");
        
        parentElement.insertBefore
        (newElement, referenceElement);
    </script>
</body>

</html>    

如果引用元素为空则追加

在此示例中,insertBefore() 方法使用 'null' 作为引用元素,这会将 'newItem' 追加到<ul> 列表的末尾。

<!DOCTYPE html>
<html lang="en">
<head> 
    <title>insertBefore</title>
</head>

<body>
    <h1>HTML DOM Element</h1>
    <h2>insertBefore() Method</h2>
    <p>click the button to insert the new Item...</p>

    <ul id="myList">
        <li>Apple</li>
        <li>Banana</li>
        <li>Orange</li>
    </ul>

    <button onclick="addItem()">
        Add Item
    </button>

    <script>
        function addItem() {
            var myList = document.getElementById("myList");
            var newItem = document.createElement("li");
            newItem.textContent = "Grapes";
            // Reference element is null,will added to end
            myList.insertBefore(newItem, null);
        }
    </script>
</body>

</html>    

动态添加书籍列表

此示例演示如何使用 insertBefore() 方法动态地将项目(书籍)添加到列表中。它使用 firstChild 作为参考,并演示如何将元素插入到特定位置。

<!DOCTYPE html>
<html lang="en">
<head> 
    <title>Insert Before</title>
</head>

<body>
    <h1>HTML DOM Element</h1>
    <h2>insertBefore() Method</h2>
    <p>click the button to add your Fav Book...</p>
    <h1>Favorite Books</h1>

    <ol id="bookList">
        <li>The Great Gatsby</li>
        <li>To Kill a Mockingbird</li>
    </ol>
    <button onclick="addBook()">
        Add Book
    </button>

    <script>
        function addBook() {
            var bookList = document.getElementById("bookList");
            var newBook = document.createElement("li");
            var bookTitle = prompt("Enter new book title:");
            newBook.textContent = bookTitle || "New Book";

            // Reference element is the first child, 
            // new book will be added at the beginning
            var referenceElement = bookList.firstChild;
            bookList.insertBefore(newBook, referenceElement);
        }
    </script>    
</body>

</html>    

支持的浏览器

方法 Chrome Edge Firefox Safari Opera
insertBefore()
html_dom_element_reference.htm
广告