Set Caret ContentEditable 90% there
HTML
<div id="editable" contenteditable="true">
text text text
<br>text text text
<br>
<div id="img1">
<img src="http://lorempixel.com/400/200/sports/1/" />
</div>
text text text
<br>
</div>
<button id="button" onclick="setCaret()">focus</button>
<div id="debugs"></div>
JavaScript
function setCaret() {
var el = document.getElementById("editable");
var $debug_el = document.getElementById("debugs");
var range = document.createRange();
var sel = window.getSelection();
var child_length = el.childNodes.length;
range.setStart(el.childNodes[2], 10);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
console.log(child_length);
console.log("------------");
//console.log(el.childNodes[6]);
for (var i = 0; i < child_length; i++) {
//console.log(el.childNodes[i].nodeType);
if (el.childNodes[i].nodeType === 1) {
console.log("aa");
var mo = el.childNodes[i];
console.log($(mo));
}
}
}