Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   можно ли изменить цвет ссылок? и одну ссылку заменить на текст? (https://javascript.ru/forum/misc/76934-mozhno-li-izmenit-cvet-ssylok-i-odnu-ssylku-zamenit-na-tekst.html)

Nexus 08.03.2019 17:51

Цитата:

Сообщение от Блондинка
это степень вложенности

Это максимальное значение циферки, которая будет добавляться к строке "xyz".
При maxPostfix=3 у ссылки будет класс:
/menu/css/css3/transform.html - xyz3,
/menu/css/css3.html - xyz2,
/menu/css.html - xyz1

Цитата:

Сообщение от Блондинка
до обернуть в конструкцию DOMContentLoaded?

Да

Блондинка 08.03.2019 18:30

Ну как всегда я где-то накосячила...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>transform</title>
<style type="text/css">
body { font: 14px normal Times, serif; }
div { border: 1px solid #ccc; padding: 5px; margin: 5px; }
a { text-decoration: none; color: #3c3vff; }
.xyz1 { color: #009900; }
.xyz2 { color: #11b311; }
.xyz3, .xyz4, .xyz5, .xyz6 .xyz7 { color: #28cc28; }
</style>
<script>
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 getClassName = function(index) {
            return 'xyz' + index;
        };
        var maxPostfix = 5;
        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 = 'someText';
                    textNode.className = className;
                    node.parentNode.insertBefore(textNode, node);
                    node.parentNode.removeChild(node);
                }));
        });
}))();

</script>
</head>
<body>
<div class="menu" id="menu1">
<a href="/menu/html.html">HTML</a> 
<a href="/menu/css.html">CSS</a> 
<a href="/menu.html">menu</a> 
<a href="/js.html">JS</a> 
</div>
<div class="menu" id="menu2">
<a href="/menu/css/css3.html">CSS3</a><br/>
<div>
<a href="/menu/css/css3/transform.html">transform</a><br/>
<a href="/menu/css/css3/transform-origin.html">transform-origin</a><br/>
<a href="/menu/css/css3/transform-style.html">transform-style</a><br/>
</div>
</div>
</body>
</html>

или дело в браузере? на тел без изменений...

Nexus 09.03.2019 11:27

Блондинка, у вас ошибки в 13 и 41 строках, касаются скобочек.

Блондинка 09.03.2019 12:22

13 ст. document.addEventListener('DOMContentLoaded',funct ion() {
так?

Блондинка 09.03.2019 12:24

41 ст. })());
так?

Блондинка 10.03.2019 09:20

и тишина... и никто не подскажет как правильно поставить скобки...

Nexus 10.03.2019 11:00

Блондинка, сами думайте. Как правильно скобки расставить можно посмотреть в примерах кода, что были ранее.
К тому же вместо вопроса "так?" можно попробовать запустить вариант своего решения и узнать ответ сразу же.

Блондинка 10.03.2019 11:53

Я уже вариантов 50 перепробовала, всё не работает, может дело в
Цитата:

Сообщение от Malleys (Сообщение 502300)
UPD
или если нужна поддержка в старых браузерах (увидел doctype),

в другом?

Nexus 11.03.2019 10:09

http://plnkr.co/edit/sEkReyGqTJvgPLIdULKV?p=preview

Блондинка 11.03.2019 14:24

Попробую на словах объяснить, раз не получается скриншот загрузить, сайты https://jsfiddle.net и http://plnkr.co с телефона не откроешь, а каждый раз бегать к соседям на пк, так они просто пошлют.


Часовой пояс GMT +3, время: 23:15.