Показать сообщение отдельно
  #65 (permalink)  
Старый 26.03.2019, 13:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,802

Блондинка, сразу бы так...
Не тестировал.
var classes = ['latest', 'second', 'first'];
document.addEventListener('DOMContentLoaded', function() {
    //const uriWithoutParams=location.pathname.split(/[#|?]+/i).shift();
    var uriWithoutParams = '/menu/css/css3/transform.html'.split(/[#|?]+/i).shift();
    var extension = uriWithoutParams.split('.').pop();
    var uriParts = uriWithoutParams.replace('.' + extension, '').split('/').filter(function(part) {
        return part.length;
    });

    var reversedClasses = classes.reverse();
    var getClassName = function(index) {
        return reversedClasses[index];
    };

    var maxPostfix = classes.length;
    uriParts.forEach(function(uri, index) {
        uri = '/' + uriParts.slice(0, ++index).join('/') + '.' + extension;
        index = maxPostfix - (uriParts.length - index);
        if (index <= 0)
            return;

        var className = getClassName(index);
        [].forEach.call(document.querySelectorAll('a[href="' + uri + '"]'), function(node) {
            node.classList.add(className);
            if (index !== maxPostfix)
                return;

            var textNode = document.createElement('span');
            textNode.textContent = node.textContent;
            textNode.className = className;
            node.parentNode.insertBefore(textNode, node);
            node.parentNode.removeChild(node);
        });
    });
});
Ответить с цитированием