Сбасибо Aetae и cyber за то, что помогли новичку разобраться в работе с DOM деревом. Итак теперь код, который работает для тех, кто возможно столкнется с подобной задачей
Код:
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>
<div id="content-wrap">
<!--text1-->
<div>1</div>
<div>2</div>
<!--text 2 -->
<div>3</div>
</div>
<script>
function prev( el ){
while(el=el.previousSibling) if(el.nodeType === 1) break;
return el
}
var wrapper_ = document.getElementById('content-wrap');
var elem = wrapper_.children[2];
var divs = wrapper_.getElementsByTagName('div');
alert('до обработки ='+wrapper_.childNodes.length+" после="+remove_TextNode(wrapper_.childNodes).length);
console.log(wrapper_.childNodes);
wrapper_n = remove_TextNode(wrapper_.childNodes);
function remove_TextNode (array) {
var leng = array.length;
var elemArray, resultArray = [];
for (var i = 0; i < leng;i++) {
elemArray = array[i];
if (elemArray.nodeType != 1) continue;
resultArray.push(elemArray);
}
return resultArray;
}
after_main = wrapper_n[2]
wrapper_.insertBefore(elem, wrapper_n[1] || null);
</script>
</body>
</html> |
И П.С. К этому счастью: function prev( el ) - функция замена previousSibiling для работы кроссбраузерно
function remove_TextNode (array) - для работы с массивом вложенных элементов в том случае, если в коде есть комментарии ( Коменты ИЕ видит как отдельный элемент и поэтому работа под ИЕ и под другими браузерами будет сильно отличаться.)
children в ие ниже 9 версии вроде работает( лично у меня работает в 7 и 8 версии)