Показать сообщение отдельно
  #19 (permalink)  
Старый 04.08.2014, 12:46
Интересующийся
Отправить личное сообщение для sergej_savelev Посмотреть профиль Найти все сообщения от sergej_savelev
 
Регистрация: 20.09.2013
Сообщений: 18

var lengthH2 = $('#contentInner h2').length;
    
    if(lengthH2>0){
        
        $('<ul></ul>').appendTo('#indexMenu>ul>li');
        
        for(i=0;i<lengthH2;i++){
            
            var nodes = document.getElementsByTagName('*'), i = nodes.length;
            var el = document.querySelector('h2'), findTag = 'H1';
            while(i--) if(nodes[i] === el) break;
            while(i--) if(nodes[i].tagName === findTag) break;
            if(nodes[i]) var parentClass = nodes[i].className;
            
            //var parentClass = $('#contentInner h2').eq(i).parents().prev('h1, :has(h1):first').attr('class');
                
            if($('#contentInner h2:not(#pagetitle)').eq(i).text().length>50){
                
                var text = '<li class="h2-'+i+'"><a href="[[~[[*id]]]]#h2-'+i+'" title="'+$('#contentInner h2:not(#pagetitle)').eq(i).text().replace(/^\s*|\s+$/g, '').replace(/\t|\n/g, ' ')+'">'+$.trim($('#contentInner h2:not(#pagetitle)').eq(i).text().slice( 0, 50 )) + '…'+'</a></li>'
                
            }else{
                
                var text = '<li class="h2-'+i+'"><a href="[[~[[*id]]]]#h2-'+i+'">'+$('#contentInner h2:not(#pagetitle)').eq(i).text().replace(/^\s*|\s+$/g, '').replace(/\t|\n/g, ' ')+'</a></li>'
                
            }
            
            $('#contentInner h2').eq(i).addClass('h2-'+i) // .append('<a name="h2-'+i+'"></a>');
            
            $(text).appendTo('#indexMenu>ul>li.'+parentClass+'>ul');
            
        }
        
    }

Почему-то в if(nodes[i]) var parentClass = nodes[i].className; всего один раз получает класс.
Ответить с цитированием