要素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
element
typeof を返し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>