Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Найти определённого, наважно какого юродного, брата (https://javascript.ru/forum/dom-window/49221-najjti-opredeljonnogo-navazhno-kakogo-yurodnogo-brata.html)

sergej_savelev 04.08.2014 14:21

var H2 = $('#contentInner h2');
    
    if(H2.length>0){
        
        $('<ul></ul>').appendTo('#indexMenu>ul>li');
        
        for(i=0;i<H2.length;i++){
        
            var sh1 = null, sh2 = H2[i], f = false;
            
            $('#contentInner h1, #contentInner h2').each(function(ind,o){
                if ( f ) return;
                if ( o.nodeName.toLowerCase() == 'h1' ){
                    sh1 = o;
                    return;
                }
                if ( o === sh2 ){
                    f = true;
                }
            });
            
            var parentClass = sh1.className;
            
                
            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');
            
        }
        
    }

Конечный результат. Всем спасибо!


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