Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Помогите сделать подпункты скрипте формирования оглавления?

Помогите сделать подпункты скрипте формирования оглавления?


     16.09.2016    Общие вопросы по PHP    431

вопрос
Есть скрипт, который выводит оглавление сформированное по тегам h3, но вот как сделать, чтобы тег h3 был пунктом, тег h4 подпунктом. Как это сделано на википедии
Скрипт
<div class="h3header">
    <h2>Содержание</h2>
    <ol id="h3header">
    </ol><hr />
</div>

<div class="h3body" data-for="h3header">
    <span itemprop="articleBody">{full-story}</span>
</div>
<script type="text/javascript">
$(function(){
    $('.h3body').each(function(){
        var e = $(this),
            h = $('#'+e.data('for')).html('');
        if( h.length > 0 ){
            $('#dle-content').find('h3').each(function(i){
                h.append('<li><a href="#h3link'+i+'">'+$(this).text()+'</a></li>');
                $(this).wrap('<a name="h3link'+i+'"></a>')
            });
        } else $('.h3header').empty().remove();
    });
});
</script>

Вот как хотелось бы, чтобы было вот как на скрине
Помогите сделать подпункты скрипте формирования оглавления?

Ответил: nowheremany



<script type="text/javascript">
$(function(){
    $('.h3body').each(function(){
        var e = $(this),
            h = $('#'+e.data('for')).html(''),
            h3=!1,h3h=!1;
        if( h.length > 0 ){
            $('#dle-content').find('h3,h4').each(function(i){
                    if(this.tagName=='H3'){
                    h3 = $('<li><a href="#h3link'+i+'">'+$(this).text()+'</a></li>').appendTo(h);
                }else{
                    (h3?($('ol',h3).length>0?$('ol',h3):$('<ol>').appendTo(h3)):h).append('<li><a href="#h3link'+i+'">'+$(this).text()+'</a></li>');
                }
                
                $(this).wrap('<a name="h3link'+i+'"></a>')
            });
        } else $('.h3header').empty().remove();
    });
});
</script>


https://jsfiddle.net/u5hz7v92/

Комментарии пользователей (1)

baseroad
5

298 | 7

baseroad - 17 сентября 2016 06:21 - Юзер

NOWHEREMANY, Вы как всегда на высоте! Огромнейшее спасибо!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы