в чем ошибка?
тултипам делаю выравнивание, после цикла код не пашет выдает ошибку на строку
tooltip = oli[i].getElementsByTagName('span')[0]; или последнюю в цикле, главное значения проставляет, и все работает на странице(тултипы на своих местах), а вот весь код после цикла не пашет из за той ошибки в чем косяк? var header = document.getElementsByTagName('header')[0]; var oli = header.getElementsByTagName('li'), bw = document.body.offsetWidth; for (var i in oli) { var tooltip = oli[i].getElementsByTagName('span')[0]; var ll = oli[i].offsetLeft, lw = oli[i].offsetWidth, tw = tooltip.offsetWidth, tl = tooltip.offsetLeft, left = (ll + lw / 2) - (tw / 2); if ((left + tw) > bw) { left = left - -(bw - (left + tw) - 3); } tooltip.setAttribute('style', 'left:' + left + 'px'); } alert(123); |
Попробуйте заменить for (var i in oli) { на
for (var i=0; i<oli.length; i++) { |
спасибо, так то робит, но в чем косяк понять не могу, нельзя в данной ситуации примять такой цикл?
|
czp,
Суть в том, что подобный цикл только для объекта(а не массива), и если для массива его использовать, то при смене объекта его нужно инициализировать иначе; var oli; var i; oli = header.getElementsByTagName('li'), 04 bw = document.body.offsetWidth; 05 06 for (i in oli) { |
Часовой пояс GMT +3, время: 22:56. |