要素Eがあり、それにいくつかの要素を追加しています。突然、次の要素はEの最初の子である必要があることがわかりました。トリックは何ですか、それを行う方法は何ですか?Eは配列ではなくオブジェクトであるため、メソッドunshiftは機能しません。
長い道のりは、トラフEの子を繰り返し、'em key ++を移動することですが、もっときれいな方法があると確信しています。
要素Eがあり、それにいくつかの要素を追加しています。突然、次の要素はEの最初の子である必要があることがわかりました。トリックは何ですか、それを行う方法は何ですか?Eは配列ではなくオブジェクトであるため、メソッドunshiftは機能しません。
長い道のりは、トラフEの子を繰り返し、'em key ++を移動することですが、もっときれいな方法があると確信しています。
var eElement; // some E DOM instance
var newFirstElement; //element which should be first in E
eElement.insertBefore(newFirstElement, eElement.firstChild);
prependparent.prepend(newChild) // [newChild, child1, child2]
これは現代のJSです!以前のオプションよりも読みやすくなっています。現在、Chrome、FF、Operaでご利用いただけます。
最後に追加するのと同じことはappend、古いものを置き換えることですappendChild
parent.append(newChild) // [child1, child2, newChild]
...)。例:
parent.prepend(newChild, "foo") // [newChild, "foo", child1, child2]
const list = ["bar", newChild]
parent.append(...list, "fizz") // [child1, child2, "bar", newChild, "fizz"]
使用できます
targetElement.insertAdjacentElement('afterbegin', newFirstElement)
MDNから:
insertAdjacentElement()メソッドは、呼び出された要素に対して特定の位置に特定の要素ノードを挿入します。
position
要素に対する相対的な位置を表すDOMString。次の文字列のいずれかである必要があります::
beforebegin要素自体の前。
afterbegin:要素のすぐ内側、最初の子の前。
beforeend:要素のすぐ内側、最後の子の後。
afterend:要素自体の後。element
ツリーに挿入される要素。
また、そのファミリにinsertAdjacentは兄弟メソッドがあります。
element.insertAdjacentHTML('afterbegin','htmlText')html文字列を直接挿入するinnerHTMLために、すべてを上書きすることなくdocument.createElement、文字列操作プロセスの抑圧的なプロセスをジャンプし、コンポーネント全体を構築することもできます
element.insertAdjacentTextサニタイズ文字列を要素に挿入します。もういやencode/decode
すべてのウィンドウのhtml要素に直接実装できます。
このような :
HTMLElement.prototype.appendFirst = function(childNode) {
if (this.firstChild) {
this.insertBefore(childNode, this.firstChild);
}
else {
this.appendChild(childNode);
}
};
受け入れられた回答は関数にリファクタリングされました:
function prependChild(parentEle, newFirstChildEle) {
parentEle.insertBefore(newFirstChildEle, parentEle.firstChild)
}
私が誤解していない限り:
$("e").prepend("<yourelem>Text</yourelem>");
または
$("<yourelem>Text</yourelem>").prependTo("e");
あなたの説明から、何らかの条件が付けられているように聞こえますが、
if (SomeCondition){
$("e").prepend("<yourelem>Text</yourelem>");
}
else{
$("e").append("<yourelem>Text</yourelem>");
}
jQueryで.prepend関数を探していると思います。コード例:
$("#E").prepend("<p>Code goes here, yo!</p>");
親要素の前に要素を追加するために、このプロトタイプを作成しました。
Node.prototype.prependChild = function (child: Node) {
this.insertBefore(child, this.firstChild);
return this;
};
var newItem = document.createElement("LI"); // Create a <li> node
var textnode = document.createTextNode("Water"); // Create a text node
newItem.appendChild(textnode); // Append the text to <li>
var list = document.getElementById("myList"); // Get the <ul> element to insert a new node
list.insertBefore(newItem, list.childNodes[0]); // Insert <li> before the first child of <ul>