ParentNode.prepend()
method inserts a set of
节点
对象或
DOMString
objects before the first child of the
ParentNode
.
DOMString
objects are inserted as equivalent
文本
节点。
ParentNode.prepend(...nodesToPrepend);
nodesToPrepend
ParentNode
. Each node can be specified as either a
节点
object or as a string; strings are inserted as new
文本
节点。
undefined
.
HierarchyRequestError
: Node cannot be inserted at the specified point in the hierarchy.
var parent = document.createElement("div");
var p = document.createElement("p");
var span = document.createElement("span");
parent.append(p);
parent.prepend(span);
console.log(parent.childNodes); // NodeList [ <span>, <p> ]
var parent = document.createElement("div");
parent.append("Some text");
parent.prepend("Headline: ");
console.log(parent.textContent); // "Headline: Some text"
var parent = document.createElement("div");
var p = document.createElement("p");
parent.prepend("Some text", p);
console.log(parent.childNodes); // NodeList [ #text "Some text", <p> ]
prepend()
method is not scoped into the
with
statement. See
Symbol.unscopables
了解更多信息。
var parent = document.createElement("div");
with(parent) {
prepend("foo");
}
// ReferenceError: prepend is not defined
You can polyfill the
prepend()
method if it's not available:
// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/prepend()/prepend().md
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('prepend')) {
return;
}
Object.defineProperty(item, 'prepend', {
configurable: true,
enumerable: true,
writable: true,
value: function prepend() {
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.insertBefore(docFrag, this.firstChild);
}
});
});
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);
| 规范 | 状态 | 注释 |
|---|---|---|
|
DOM
The definition of 'ParentNode.prepend()' in that specification. |
实时标准 | 初始定义。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
prepend
|
Chrome 54 | Edge 17 | Firefox 49 | IE No | Opera 39 | Safari 10 | WebView Android 54 | Chrome Android 54 | Firefox Android 49 | Opera Android 41 | Safari iOS 10 | Samsung Internet Android 6.0 |
完整支持
不支持
实验。期望将来行为有所改变。
ParentNode
and
ChildNode
ParentNode.append()
Node.appendChild()
Node.insertBefore()
ChildNode.before()
Element.insertAdjacentElement()
NodeList
ParentNode
AbortController
AbortSignal
AbstractRange
Attr
ByteString
CDATASection
CSSPrimitiveValue
CSSValue
CSSValueList
CharacterData
ChildNode
注释
CustomEvent
DOMConfiguration
DOMError
DOMErrorHandler
DOMException
DOMImplementation
DOMImplementationList
DOMImplementationRegistry
DOMImplementationSource
DOMLocator
DOMObject
DOMParser
DOMPoint
DOMPointInit
DOMPointReadOnly
DOMRect
DOMString
DOMTimeStamp
DOMTokenList
DOMUserData
Document
DocumentFragment
DocumentType
元素
ElementTraversal
Entity
EntityReference
事件
EventTarget
HTMLCollection
MutationObserver
节点
NodeFilter
NodeIterator
NodeList
NonDocumentTypeChildNode
ProcessingInstruction
PromiseResolver
范围
StaticRange
文本
TextDecoder
TextEncoder
TimeRanges
TreeWalker
TypeInfo
USVString
UserDataHandler
XMLDocument