JQuery: выберите <a>, который указывает на текущий URL

В jQuery, как выбрать <a>, href которого указывает на текущий URL

Например:
URL = http: //server/dir/script.aspx? id = 1

Хочу выбрать вот этот <a>
<a href = "/dir/script.aspx">...</a>

Я пробовал это, но это не работает:

var url = window.location.href;
$('#ulTopMenu a["'+url+'"*=href]').addClass("selected");

Возможно неправильный синтаксис. Кто-нибудь знает, как это сделать?

заранее спасибо

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
5 718
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я не знаю ответа на ваш вопрос, но верен ли этот синтаксис селектора?

'#ulTopMenu a["http://www.foo.com"*=href]'

Я бы предположил, что если такое возможно, это было бы записано как

'#ulTopMenu a[href* = "http://www.foo.com"]'

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

var nav = location.pathname.substr(1).split('/', 2)[0] || '/';
if (nav) {
    $('#ulTopMenu a[href$ = "' + nav + '"]').parent().addClass('selected');
}

Это в основном говорит о добавлении класса selected, если URL-адрес заканчивается тем же окончанием, что и текущий URL-адрес. Хотя вам нужно следить за «похожими» URL-адресами, но если у вас много действительно похожих URL-адресов, вам, вероятно, следует подумать о решении на стороне сервера.

(Я недавно опубликовал статью об этой технике - если это действительно то, что вы пытаетесь сделать: http://leftlogic.com/lounge/articles/auto-selecting_navigation/)

Ответ принят как подходящий

Спасибо, Реми, на самом деле не получилось, но близко. Вот мой последний код

  var scriptname = GetUrlScriptname();
  $('#ulTopMenu a[href$ = "' + scriptname + '"]').parent().addClass('selected');

function GetUrlScriptname()
{
  var rex = new RegExp("\/[^\/]+\\.\\w+($|\\?)");
  var match = rex.exec(location.pathname);
  return match[0].substring(1);
}

Другие вопросы по теме