如果我有一個像<div>
這樣的HTML元素,裏面有一些文本或其他元素,我可以在這個div之前或之後添加一些沒有html元素的文本數據,只是純文本?在HTML元素之前或之後添加文本
我想只使用純Javascript。
喜歡的東西:
<div id="parentDiv">
my text must be added here
<div id="childDiv"></div>
</div>
如果我有一個像<div>
這樣的HTML元素,裏面有一些文本或其他元素,我可以在這個div之前或之後添加一些沒有html元素的文本數據,只是純文本?在HTML元素之前或之後添加文本
我想只使用純Javascript。
喜歡的東西:
<div id="parentDiv">
my text must be added here
<div id="childDiv"></div>
</div>
是的,你可以創建document.createTextNode('the text')
文本節點,然後你就可以將它像一個元素,使用appendChild或的insertBefore。
例子#childDiv之前插入文本:只是爲了記錄
<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>
您可以添加文本節點。創建節點 - document.createTextNode('text')
,然後插入/ append/replace - 做任何你想做的事情。
像這樣的事情應該去做
div.insertAdjacentHTML('beforeBegin', yourText);
其中div
是你的兒童DIV。
:
var text = document.createTextNode('the text');
var child = document.getElementById('childDiv');
child.parentNode.insertBefore(text, child);
您也可以在...之後添加它... div.insertAdjacentHTML('afterEnd','my text added after'); 有誰知道你是否可以刪除它? (不使用班級或ID) – tkerwood
@tkerwood當然。您需要檢索對該* Text *節點的引用,然後使用'.removeChild()'方法(在其父節點上)。 –
在問候的話題和用戶插入問題之前或後,這裏是後一個例子:
var text = document.createTextNode("my text must be added here.");
var childTag = document.getElementById("childDiv");
childTag.parentNode.insertBefore(text, childTag.nextSibling);
如果childTag不有任何兄弟姐妹,這是可以的,因爲insertBefore方法處理這種情況,並簡單地將它添加爲最後一個孩子。
也可以在創建文本節點後使用appendChild()方法,然後通過parentNode添加您的childTag。
您也可以嘗試「insertAdjacentText」或「insertAdjacentHTML」方法:https://developer.mozilla.org/en-US/docs/Web/API/Element.insertAdjacentHTML –