Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Добавить после каждого n элемента html код (https://javascript.ru/forum/css-html/46237-dobavit-posle-kazhdogo-n-ehlementa-html-kod.html)

рони 02.04.2014 21:25

Aetae,
а может всётаки неактуально ? может у вас ошибка на getElementsByClassName вылазит? как мог проверил даже емулятор ие6 проглотил без вопросов без null, естественно getElementsByClassName заменил для 6.

Aetae 02.04.2014 21:29

Wat?! Хреновый эмулятор у вас.)
<!DOCTYPE html> 
<body>
<script>
try{
	document.body.insertBefore(document.createTextNode('true'), undefined)
}catch(e){
	document.write(e.message)
}
</script>
</body>
<html>

http://ajitae.ru/testinsert.html
ie11
ie8

MyaSniK093 02.04.2014 21:29

Странно сделал как мне надо но для второго класса не работает и только в мазиле.
<script>
    window.onload = function ()
{
var shortstorynotfixed = document.getElementsByClassName('shortstorynotfixed'), i = shortstorynotfixed.length,
    clr = document.createElement('div');  clr.className = 'clr';    

    var j=1; while(j => i){ shortstorynotfixed[j].parentNode.insertBefore(clr.cloneNode(true), shortstorynotfixed[j].nextSibling  || null);  j=j+2;}


var cussh = document.getElementsByClassName('cusshortstorynotfixed'), x = cussh.length,
    clr = document.createElement('div'); clr.className = 'clr';

    var z=1; while(z => x){ cuss[z].parentNode.insertBefore(clr.cloneNode(true), cussh[z].nextSibling  || null); z=z+2;} 

}
  </script>

рони 02.04.2014 21:36

Aetae,
можно я всёравно поспорю ))) newsgl[i].nextSibling --- выдаст либо элемент либо null

Aetae 02.04.2014 21:38

MyaSniK093, во-первых: не пишите в одну строчку, уже завтра сами глаза сломаете.
Во-вторых: в javascript "больше или равно" >= , а не =>. Может всё-таки стоит почитать хотябы про базовый синтаксис?
В-третьих: в вашем случае нужно <=.

рони, однако.) В данном случае да, вы таки правы.
Но бывают всё-таки варианты с undefined(.childNodes[n] итд), оно видно у меня в памяти и засело.

рони 02.04.2014 21:40

MyaSniK093,
вам показали нормальный обход -- от последнего элемента к первому -- иначе при каждой вставке индекс надо будет корректировать

MyaSniK093 02.04.2014 21:46

с оператором я не доглядел, но мне надо чтоб clr добавлялся после каждого второго.
Мне это нужно для отображения новостей в 2 колонки на главной странице и при этом на ней выводиться 2 категории поэтому пришлось прибегнуть к javascript.

Aetae 02.04.2014 21:50

рони, да никуда не денутся, выбраны же по классу, а не по тегу.)
MyaSniK093, что надо поменять - я вам сказал.

MyaSniK093 02.04.2014 21:58

да это я поменял но почему то вторая часть функции не работает она даже не выполняться.

Aetae 02.04.2014 22:19

MyaSniK093, у вас опечатка cuss[z] вместо cussh[z].
Используйте редакторы с подсветкой, чтобы таких проблем не возникало.
Используйте консоль(f12), чтобы видеть в чём проблема, коли она таки возникнет.


Часовой пояс GMT +3, время: 07:02.