-1

Есть 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();}
  • А если требуется указать не точный адрес? например pct_ это только часть названия если все же хотите именно на фронте реализовать такое(или бэка у вас просто нет), для подобным образом размытых целей регулярки хороши(впрочем, на бэке для этих целей он тоже пригодится. тот же mod_rewrite на них). по сути регулярки это отдельный довольно мощный "недо-пере-язык", насколько мощный, настолько же и тяжелый для освоения\восприятия. хотя это и не brainfuck конечно, но все равно - удачи в знакомстве :3 – puffleeck Dec 29 '23 at 08:51
  • puffleeck, спасибо большое за пояснение – Настёна Dec 29 '23 at 08:57
  • location.pathname это строка. Все что вам нужно, это проверить, удовлетворяет ли строка заданным условиям. Можно воспользоваться методом строки indexOf, который ищет вхождение подстроки в строке. – SwaD Dec 29 '23 at 09:06
  • SwaD, спасибо вам за подсказку и с наступающим нг))) Простите не могу плюсануть ваш ответ – Настёна Dec 29 '23 at 09:28

1 Answers1

0

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

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

2.

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

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

3.

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

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

4.

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

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


если их сотни

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

  • Вообще ничего не поняла, кроме пункта "на js это сделать нельзя, только на стороне сервера".

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

    – Настёна Dec 29 '23 at 08:54
  • Вполне всё понятно. Если вам непонятно выражение "искать по подстроке" и вы не умеете по ссылке переходить, в которой написано применение функции - ну уж извините ¯\(ツ) – Алексей Шиманский Dec 29 '23 at 09:00
  • Для вас любой ответ будет непонятен, потому что вы не читали ни одной книги для новичков. И вам нужно вначале их почитать. А там почти вся информация, которая представлена в вопросе - имеется – Алексей Шиманский Dec 29 '23 at 09:01
  • Вот уважаемый SwaD в своём коротком комментарии смог донести больше полезной информации для меня как для новичка. – Настёна Dec 29 '23 at 09:27
  • @Настёна понимаю. Фраза "искать по подстроке" намного понятнее, чем "искать по подстроке". Логично. *рукалицо* – Алексей Шиманский Dec 29 '23 at 09:29