ما هي مكتبة JavaScript أو Framework يدعم جيل "جدول المحتوى"؟

StackOverflow https://stackoverflow.com/questions/895932

سؤال

أنا أبحث عن جافا سكريبت على جيل "جدول المحتويات" ذبابة "جيل" من HTML (مع المراسي).

مثال:

<h1>First level1 heading</h1>
lorem ipsum
<h2>1a heading</h2>
lorem ipsum
<h2>1b heading</h2>
lorem ipsum
<h1>Second level1 heading</h1>
lorem ipsum

يجب إرجاع شيء مثل

 First level1 heading   
   1a heading   
   1b heading 
 Second level1 heading

مع الخطوط المرتبطة بالعناوين، وكذلك يجب إرجاع HTML Orignal مع مراسي إدراجها.

هل هناك شيء مدرج في واحدة من مكتبات أو أطر جافا سكريبت الكبيرة؟

إذا لم يكن أي منها، فقد شاهد شخص ما وحدة JS جيدة لهذا الغرض؟

هل كانت مفيدة؟

المحلول

jQuery. هو صديقك، مع هذا البرنامج المساعد: جدول المحتويات. وبعد الصفحة الرئيسية هي http://code.google.com/p/samaxesjs/

نصائح أخرى

اجعلها بنفسك، كتبت ذلك :)، آمل أن يساعد

أضف عنصر DIV كأول طفل من عنصر الجسم وإعطاء معرف باسم "TableofContents"

وإضافة البرنامج النصي أدناه كآخر طفل من عنصر الجسم

<script>
    var el = document.getElementsByTagName("*") || [];
    var toc = "<ul>";
    var lvl = 1;
    for(var i=0;i<el.length;i++)
    {
        var ce = el[i];
        var tag = ce.tagName + "";
        var m = tag.match(/^h([1-5])$/i);
        if(m)
        {
            var n = Number(m[1]);
            if(lvl > n)
            {
                while(lvl-->n)toc+="</ul></li>";  
            }else if(lvl < n){
                while(lvl++<n)toc+="<li style='list-style:none'><ul>";
            }
            toc +=  '<li><a href="#toc_' + i + '">' + 
                    (ce.innerText || ce.text()) +
                    '</a></li>';
            var ta = document.createElement("div");
            ta.innerHTML = '<a name="toc_' + i + '" />';
            ce.insertBefore(ta, ce.firstChild);
        }
    }
    while(lvl-->1)toc+="</ul></li>";
    toc+="</ul>";
    document.getElementById("tableOfContents").
        innerHTML = toc;
</script>

سيكتشف هذا البرنامج النصي كل ساعة (من 1 إلى 5) ويخيل جدول محتوياتك

هذه مشكلة بسيطة للغاية يمكن حلها مع وظيفة خط 10-20. لا يوجد إطار مطلوب. إما المشي DOM مع GetellementBytagname ('H1')، GetellementBytagname ('H2') أو استخدام تعبيرات منتظمة. تأتي أطر تحميل مع آثار وأداء الأداء والمخاطر لذلك أقترح عدم تثبيت واحدة لمشاكل بسيطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top