Nexus, ?
|
Цитата:
|
Блондинка, не до конца понятно, что вы хотите, а что-то править основываясь на догадках не хочу.
Вчера какое-то представление о вашей цели было, сегодня нет. Напишите, что конкретно вы хотите получить без использования слов "массив", "объект" и т.п. |
что бы ссылкам присваивался класс не xyz с номером 1-20 а абсолютно разные имена классов, xyz, zyx, abc, cba, и так далее, я просто в скрипте пишу нужные имена классов начиная от наибольшей вложенности, плюс скрипт считает сколько я внесла имен классов и это значение присваивает переменной maxPostfix.
|
Блондинка, сразу бы так...
Не тестировал.
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);
});
});
});
|
Nexus,
а можно вопросик? что значит эта строчка var uriWithoutParams = '/menu/css/css3/transform.html'.split(/[#|?]+/i).shift(); может правильнее было бы заменить на что-то типа location host? |
Блондинка, это тестовый текущий путь. Стройкой выше был закомментирован правильный вариант.
|
Nexus,
тоесть если я правильно поняла третью строку-коментирование надо удалить а четвёртую заменить на var uriWithoutParams=location.pathname.split(/[#|?]+/i).shift(); |
Блондинка, в начале третье строки две кривые черточки нужно удалить, а в начале четвертой наоборот - добавить (ну или удалить эту строку вообще).
|
Цитата:
|
| Часовой пояс GMT +3, время: 05:29. |