--- title: Element.insertAdjacentElement() slug: Web/API/Element/insertAdjacentElement tags: - Element.insertAdjacentElement() - insertAdjacentElement() translation_of: Web/API/Element/insertAdjacentElement ---
{{APIRef("DOM")}}
insertAdjacentElement() 方法将一个给定的元素节点插入到相对于被调用的元素的给定的一个位置。
element.insertAdjacentElement(position, element);
'beforebegin': 在该元素本身的前面.'afterbegin':只在该元素当中, 在该元素第一个子孩子前面.'beforeend':只在该元素当中, 在该元素最后一个子孩子后面.'afterend': 在该元素本身的后面.插入的元素,插入失败则返回null.
| 异常 | 说明 |
|---|---|
SyntaxError |
插入的位置是一个无法识别的值。 |
TypeError |
插入的元素不是一个有效元素。 |
<!--beforebegin--><p><!--afterbegin--> foo <!--beforeend--></p><!--afterend-->
beforebegin 和 afterend操作才能起作用。beforeBtn.addEventListener('click', function() {
var tempDiv = document.createElement('div');
tempDiv.style.backgroundColor = randomColor();
activeElem.insertAdjacentElement('beforebegin',tempDiv);
setListener(tempDiv);
});
afterBtn.addEventListener('click', function() {
var tempDiv = document.createElement('div');
tempDiv.style.backgroundColor = randomColor();
activeElem.insertAdjacentElement('afterend',tempDiv);
setListener(tempDiv);
});
看看我们在 Github (也可以参考 源码)上的 insertAdjacentElement.html 演示。在一个容器当中我们有一组{{htmlelement("div")}} 元素。 点击其中一个div时,这个容器会处于选中状态,然后你就可以按下Insert before 或Insert after 按钮通过 insertAdjacentElement()方法来把一个新的divs 插入到选中的元素前面或者后面。
| 规范 | 状态 | 批注 |
|---|---|---|
| {{SpecName('DOM WHATWG', '#dom-element-insertadjacentelement', 'insertAdjacentElement()')}} | {{ Spec2('DOM WHATWG') }} |
{{ CompatibilityTable() }}
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|
| Basic support | {{ CompatVersionUnknown() }} | {{ CompatGeckoDesktop("48.0") }} | 8 | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} |
| Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | {{ CompatUnknown() }} | {{ CompatGeckoMobile("48.0") }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
beforeend)