Как нужно правильно указывать пути?

Есть javascript код (или это jquery, я пока их не различаю), который выводит/прячет информацию в зависимости от адреса страницы.

$(document).ready( function() {
                if ( location.pathname == "/" || location.pathname == "/pct_") {$('.kalf').hide();}
            else { $('.kalf').show();}
            });

Этот код я понимаю так:

если (путь равен "адресу сайта" или путь совпадает с "вложенной папкой pct_"), {то скрыть всё относящиеся к классу kalf} иначе {показывать}

Вопрос:

  1. А если требуется указать не точный адрес? например pct_ это только часть названия - index.html/pct_123 или index.html/pct_34255, или index.html/pct project0001 и тд
  2. А если в папке pct_123 есть вложенные страницы или подпапки на которых тоже нужно скрыть?
  3. А если нужно сделать обратные действия, то есть применить код не к перечисленным страницам, а ко всем кроме указанных?
  4. А если pct_ не первая подпапка, а под-под папка?

Мои варианты

по первому пункту мой вариант точно не работает)))

if ( location.pathname == "/" || location.search = "/pct_?") {$('.kalf').hide();}

по второму пункту даже предположений нет как это можно написать по третьему пункту хотела поменять равно на неравно, но тогда нужно будет перечислять все страницы, а если их сотни.... наверняка должен быть вариант попроще

if ( location.pathname != "/" || location.pathname != "/pct_" || location.pathname != "/pct_123" и тд) {$('.kalf').hide();}

по четвертому пункту предположила, что такое сработает, но нет

if ( location.pathname == "/" || location.pathname == "/../pct_") {$('.kalf').hide();}

Ответы (1 шт):

Автор решения: Алексей Шиманский

если требуется указать не точный адрес

Нужно искать по подстроке. Это может быть сделано например через String.includes

2.

А если в папке pct_123 есть вложенные страницы или подпапки

Js работает на клиенте. Проверка на "подпапки" должна быть на сервере

3.

А если нужно сделать обратные действия

Для этого есть знак ! в программировании, который может ставиться до условия (например if (!test) { ... }). Надо учить основы

4.

А если pct_ не первая подпапка, а под-под папка

Аналогично второму пункту


если их сотни

нужно смотреть на цели и задачи. В каком-то достаточно ориентироваться на часть пути, в каком-то придётся составить массив путей и проверять на вхождение через array.includes, в какой-нибудь другой задаче ещё как-либо

→ Ссылка