要素Eがあり、それにいくつかの要素を追加しています。突然、次の要素はEの最初の子であることがわかりました。トリックは何ですか、どのように行うのですか?Eは配列ではなくオブジェクトであるため、メソッドunshiftは機能しません。
長い道のりはEの子供たちを繰り返し、key ++を移動することですが、もっときれいな方法があると私は確信しています。
要素Eがあり、それにいくつかの要素を追加しています。突然、次の要素はEの最初の子であることがわかりました。トリックは何ですか、どのように行うのですか?Eは配列ではなくオブジェクトであるため、メソッドunshiftは機能しません。
長い道のりはEの子供たちを繰り返し、key ++を移動することですが、もっときれいな方法があると私は確信しています。
回答:
var eElement; // some E DOM instance
var newFirstElement; //element which should be first in E
eElement.insertBefore(newFirstElement, eElement.firstChild);
使用できます
targetElement.insertAdjacentElement('afterbegin', newFirstElement)
MDNから:
insertAdjacentElement()メソッドは、特定の要素ノードを、それが呼び出された要素に相対的な特定の位置に挿入します。
位置
要素の相対位置を表すAのDOMString。次の文字列のいずれかである必要があります::
beforebegin要素自体の前。
afterbegin:要素のすぐ内側、最初の子の前。
beforeend:最後の子の後の要素のすぐ内側。
afterend:要素自体の後。element
ツリーに挿入される要素。
また、ファミリーinsertAdjacentには兄弟メソッドがあります:
element.insertAdjacentHTML('afterbegin','htmlText')innerHTMLすべてを上書きせずに、HTML文字列を直接挿入するため、抑圧的なプロセスにジャンプdocument.createElementして、文字列操作プロセスでコンポーネント全体を構築することもできます
element.insertAdjacentText要素にサニタイズ文字列を挿入します。もういやencode/decode
elementtypeof を返しdocument-fragmentますinsertAdjacent...()。より適切な回答が得られるまでは、fragmentをに追加するのが最善の推測ですdiv。あなたのDOMの操作を行ってから使用Range.selectNodeContents()してRange.extractContents()フラグメントを取り戻すために
parentElement.prepend(newFirstChild)
これは最新のJSです。以前のオプションよりも読みやすくなっています。現在、Chrome、FF、Operaで利用できます。
PSあなたは直接文字列を付加することができます
parentElement.prepend('This text!')
使用できます -2020年5月94%
.appendChild()最初に追加することは.prepend()慣習に固執してそれを呼び出すのではなく.prependChild()
append()も存在し、と同じように機能prepend()しますが、最後に
prependすでにあるのに気づいたときにも混乱しました。:( [OK]を、それは過去に存在しなかった。
受け入れられた回答を関数にリファクタリング:
function prependChild(parentEle, newFirstChildEle) {
parentEle.insertBefore(newFirstChildEle, parentEle.firstChild)
}
eElementはそれが何を意味するのかを知る必要があります。そのためには、質問を読む必要があります。ほとんどの場合、私はタイトルを確認し、質問の詳細を無視して直接回答に移動します。
私が誤解していない限り:
$("e").prepend("<yourelem>Text</yourelem>");
または
$("<yourelem>Text</yourelem>").prependTo("e");
あなたの説明から、いくつかの状態が付いているように聞こえますが、
if (SomeCondition){
$("e").prepend("<yourelem>Text</yourelem>");
}
else{
$("e").append("<yourelem>Text</yourelem>");
}
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>