2011-09-11 17 views
28

<div>のようなHTML要素がある場合や、この要素の前または後に別の要素を追加することはできますか?HTML要素の前または後にテキストを追加する

純粋なJavascriptのみを使用したいと思います。以下のような

何か:

<div id="parentDiv"> 
    my text must be added here 
    <div id="childDiv"></div> 
</div> 

答えて

43

はい、あなたは、あなたがのappendChildかのinsertBeforeと、要素のようにそれを挿入することができdocument.createTextNode('the text')

とテキストノードを作成することができます。 #childDivの前にテキストを挿入

例:

var text = document.createTextNode('the text'); 
var child = document.getElementById('childDiv'); 
child.parentNode.insertBefore(text, child); 
+8

「insertAdjacentText」または「insertAdjacentHTML」メソッドを試すこともできます。https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentHTML –

1

あなたはテキストノードを追加することができます。ノード - document.createTextNode('text')を作成して、/ append/replaceを挿入します。必要な操作を行います。

1

このようなものは、それを行う必要があります。

<script type="text/javascript"> 
    var parent = document.getElementById('parentDiv'); 
    var sibling = document.getElementById('childDiv'); 
    var text = document.createTextNode('new text'); 
    parent.insertBefore(text, sibling); 
</script> 
26

念のために:

divはあなたです
div.insertAdjacentHTML('beforeBegin', yourText); 

子供 - DIV。 childTagがない場合

var text = document.createTextNode("my text must be added here."); 
    var childTag = document.getElementById("childDiv"); 

    childTag.parentNode.insertBefore(text, childTag.nextSibling); 

ライブデモ:前または後にトピックに関して、ユーザーにhttp://jsfiddle.net/ZkzDk/

+0

また、後に追加することもできます。 div.insertAdjacentHTML( 'afterEnd'、 '後にテキストが追加されました'); あなたはそれを削除できるかどうか知っていますか? (クラスやIDを使わずに) – tkerwood

+0

@tkerwood確かに。その* Text *ノードへの参照を取得し、(その親で) '.removeChild()'メソッドを使用する必要があります。 –

1

を挿入するための質問は、ここでは後の例ですinsertBeforeメソッドがこのケースを処理し、それを最後の子として追加するだけなので、大丈夫です。

また、テキストノードを作成した後にappendChild()メソッドを使用し、parentNode経由でchildTagを追加することもできます。

関連する問題