Получение всех ссылок на странице, соответствующих строке URL - PullRequest
0 голосов
/ 13 января 2011

В настоящее время я использую этот код (вместе с Mootools) для создания массива всех якорей в #subnav div, которые содержат определенную строку URL:

$('subnav').getElements('a[href*=/'+href+']')

Проблема в том, что если я ищу work.aspx?subsection=24&project=1, который сопоставит якоря с URL-адресом work.aspx?subsection=24&project=15.

Как я могу предотвратить это?

Ответы [ 3 ]

0 голосов
/ 13 января 2011

Собираюсь ответить на мой собственный вопрос.Это было так же просто, как изменить * на $.

$('subnav').getElements('a[href$=/'+href+']')

0 голосов
/ 13 января 2011

Похоже, что это должно быть обработано более изящно с помощью перенаправления 301 или 302 ...

0 голосов
/ 13 января 2011

Единственное решение, которое я могу придумать, это использовать регулярные выражения; как то так:

$('subnav').getElements('a').filter(function (element, index) {
    return /work\.aspx\?subsection=24&project=1(?:$|&)/.test(element.href);
});

Это регулярное выражение будет соответствовать project = 1, а затем либо &, либо концу строки. Он использует MooTool (или собственный браузер) Array.filter, чтобы удалить все несоответствия. Это не самое элегантное решение, особенно если вы используете это динамически, с тех пор вам придется написать некоторый код для создания нового регулярного выражения.

...