Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
-4
rated 0 times [  1] [ 5]  / answers: 1 / hits: 36244  / 13 Years ago, sat, january 7, 2012, 12:00:00

So I have a div with some pre tags in it, like so:



<div id=editor >
<pre contentEditable=true>1</pre>
<pre contentEditable=true>2</pre>
<pre contentEditable=true>3</pre>
</div>


Now I want to use Javascript to put a new pre node between 1 and 2. I've been trying to do it this way (since I understand the DOM is a doubly linked tree), but I'm getting the sense that maybe the pointers aren't editable as I'm approaching it.



(just a snippet inside an event handler, e being the event)



var tag = e.srcElement;
if(tag.nextSibling){
var next = tag.nextSibling;
var newPre = document.createElement('pre');
newPre.setAttribute(contentEditable, true);
newPre.innerHTML = boom;
tag.nextSibling = newPre;
newPre.nextSibling = next;
}


Those last two lines are from my c++ experience, but feel icky in JS. How would I set a new sibling node?


More From » html

 Answers
617

Here is how I would do that:



JS



var container = document.getElementById('editor'),
firstChild = container.childNodes[1];
if (container && firstChild) {
var newPre = document.createElement('pre');
newPre.setAttribute(contentEditable, true);
newPre.innerHTML = boom;
firstChild.parentNode.insertBefore(newPre, firstChild.nextSibling);
}


jsfiddle: http://jsfiddle.net/bZGEZ/


[#88173] Friday, January 6, 2012, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
denver

Total Points: 232
Total Questions: 111
Total Answers: 103

Location: South Korea
Member since Sat, Oct 2, 2021
3 Years ago
;