Вывести код во всех дочерних ссылках каталога jQuery

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

Примером этого случая может быть ссылка-каталог: сайт.ру/papka. И чтобы код выполнялся во всех ссылках после /papka, например: /papka/2.html, /papka/5.html, /papka/info/7.html, но не в таких /papka2, /papka2/9.html.

Общим совпадением для всех ссылок нужного нам типа будет общий родитель: papka. По нему и создадим код, который определит, нужную нам директорию, а затем будем проверять на каждой ссылке ее наличие.

Рассмотрим рабочий код, составленный мной:

<script>
$(document).ready (function () {
var pathes = window.location.pathname + window.location.search; //получаем ссылку от домена типа: /catalog/konservy/pashtet/
var deeef = pathes.replace(/\/catalog\/konservy\/.*/,"good"); //пишем ссылку родителя: /catalog/konservy/
if (deeef == 'good') alert ('Эта ссылка дочерняя');
});
</script>

Скрипт будет выводить сообщение во всех дочерних ссылках родителя /catalog/konservy типа: /catalog/konservy/pashtet/, /catalog/konservy/about, /catalog/konservy/onas и т.д.

Для работы - указать ссылку родителя в var deeef

В скрипте я использую переменную pathes, которая складывается из двух команд (для примера рассмотрим ссылку: сайт.ру/papka.php?user=true):

  • window.location.pathname - возвращает часть ссылки, которая идет после домена: /papka.php
  • window.location.search - возвращает часть ссылки, которая является get запросом (): ?user=true

Я не стал использовать window.location.href, так как он работает с привязкой к домену. Это может быть неудобным, например при переезда сайта на другой домен. Поэтому здесь используется именно такая связка ссылки.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: