We know that appendChild and insertBefore both have the function of inserting nodes. But in application, there are still some differences between the two.
For example, when we want to insert a child node P in the following div:
Node
Node
We can write like this (please add another comment when testing a certain situation):
Obviously, through this example, you can know that both appendChildhild and insertBefore can insert nodes.
In the above example, there is such a code: oTest.insertBefore(newNode,null). Here insertBefore has two parameters that can be set. The first one is the same as appendChild, but the second one is unique to it. It can not only be null, but also:
Or:
Also:
Since it can be seen that the insertBefore() method is to insert a new node in front of the existing child node, but in Example 1, the insertBefore() method can also be used to insert a new node at the end of the child node list. Combining the two situations, it is found that the insertBefore() method can insert a node at any position in the child node list.
From these examples:
The appendChild() method adds a new child node to the end of the node's child node list.
The insertBefore() method inserts a new node at any position in the node's child node list.