ما هي مكتبة JavaScript أو Framework يدعم جيل "جدول المحتوى"؟
-
23-08-2019 - |
سؤال
أنا أبحث عن جافا سكريبت على جيل "جدول المحتويات" ذبابة "جيل" من 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') أو استخدام تعبيرات منتظمة. تأتي أطر تحميل مع آثار وأداء الأداء والمخاطر لذلك أقترح عدم تثبيت واحدة لمشاكل بسيطة.