--- title: ChildNode.after() slug: orphaned/Web/API/ChildNode/after tags: - API - DOM - Experimental - Nodo - Referencia - metodo translation_of: Web/API/ChildNode/after original_slug: Web/API/ChildNode/after ---
{{APIRef("DOM")}} {{SeeCompatTable}}
El método ChildNode.after()
inserta un conjunto de objetos {{domxref("Node")}} o {{domxref("DOMString")}} en la lista de hijos de este ChildNode
del padre, justo después de este ChildNode
. Los objetos {{domxref("DOMString")}} se insertan como nodos equivalentes {{domxref("Text")}}.
[Throws, Unscopable] void ChildNode.after((Node o DOMString)... nodes);
nodes
var parent = document.createElement("div"); var child = document.createElement("p"); parent.appendChild(child); var span = document.createElement("span"); child.after(span); console.log(parent.outerHTML); // "<div><p></p><span></span></div>"
var parent = document.createElement("div"); var child = document.createElement("p"); parent.appendChild(child); child.after("Text"); console.log(parent.outerHTML); // "<div><p></p>Text</div>"
var parent = document.createElement("div"); var child = document.createElement("p"); parent.appendChild(child); var span = document.createElement("span"); child.after(span, "Text"); console.log(parent.outerHTML); // "<div><p></p><span></span>Text</div>"
ChildNode.after()
es unscopableEl método after()
no está incluido en la declaración with
.Consulte {{jsxref("Symbol.unscopables")}} para obtener más información.
with(node) { after("foo"); } // ReferenceError: after is not defined
Puedes usar un polyfill del método after()
en Internet Explorer 9 y superiores con el siguente código:
// from: https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/after()/after().md (function (arr) { arr.forEach(function (item) { if (item.hasOwnProperty('after')) { return; } Object.defineProperty(item, 'after', { configurable: true, enumerable: true, writable: true, value: function after() { var argArr = Array.prototype.slice.call(arguments), docFrag = document.createDocumentFragment(); argArr.forEach(function (argItem) { var isNode = argItem instanceof Node; docFrag.appendChild(isNode ? argItem : document.createTextNode(String(argItem))); }); this.parentNode.insertBefore(docFrag, this.nextSibling); } }); }); })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
// from: https://github.com/FabioVergani/js-Polyfill_Element.prototype.after/blob/master/after.js (function(x){ var o=x.prototype,p='after'; if(!o[p]){ o[p]=function(){ var e, m=arguments, l=m.length, i=0, t=this, p=t.parentNode, n=Node, s=String, d=document; if(p!==null){ while(i<l){ e=m[i]; if(e instanceof n){ t=t.nextSibling; if(t!==null){ p.insertBefore(e,t); }else{ p.appendChild(e); }; }else{ p.appendChild(d.createTextNode(s(e))); }; ++i; }; }; }; }; })(Element); /* minified: (function(x){ var o=x.prototype; o.after||(o.after=function(){var e,m=arguments,l=m.length,i=0,t=this,p=t.parentNode,n=Node,s=String,d=document;if(p!==null){while(i<l){((e=m[i]) instanceof n)?(((t=t.nextSibling )!==null)?p.insertBefore(e,t):p.appendChild(e)):p.appendChild(d.createTextNode(s(e)));++i;}}}); }(Element)); */
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('DOM WHATWG', '#dom-childnode-after', 'ChildNode.after()')}} | {{Spec2('DOM WHATWG')}} | Definición Inicial. |
{{Compat("api.ChildNode.after")}}