При использовании сторонних библиотек наличие плохой иерархии заголовков является довольно распространенной проблемой, но на самом деле основная проблема заключается в том, что во многих случаях эти заголовки не должны существовать.Избавиться от них нужно, прежде чем применять следующий скрипт, который выполняет намеченную работу.
Этот javascript использует jQuery, но может быть адаптирован в vanilla-javascript.Он анализирует страницу для стандартных заголовков (h1
до h6
) и изменяет уровень на соответствующий ожидаемый уровень в ранге, учитывая его родительский уровень.
Сложность такого рода сценариев заключается в том, что в вашемНапример, исправление иерархии заголовков путем простого изменения, например, первого h4
на h3
, может работать на бумаге, но не является надежным решением.
$(document).ready(function() {
var level=0, plevel=[0];
$("h1,h2,h3,h4,h5,h5").each(function() {
var c_level=$(this)[0].tagName.substr(1);
var p_level=plevel[plevel.length-1];
while (c_level<p_level) {
plevel.pop();
level--;
p_level=plevel[plevel.length-1];
}
if (c_level>p_level) {
level++;
plevel.push(c_level);
}
if (c_level!=level) {
$(this).replaceWith("<h"+(level)+">"+$(this).html()+"</h"+(level)+">");
}
});
});