Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Помогите сделать подпункты скрипте формирования оглавления?

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


     16.09.2016    Все вопросы » Общие вопросы по PHP    579

вопрос
Есть скрипт, который выводит оглавление сформированное по тегам 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
Юзер

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

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

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

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

наверх