Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Глючит атрибут [foo=bar] (https://javascript.ru/forum/jquery/18279-glyuchit-atribut-%5Bfoo%3Dbar%5D.html)

romanco 24.06.2011 13:53

Глючит атрибут [foo=bar]
 
В очередной раз мучения с js. Простая ситуация. Версия jquery 1.5.1

<ul>
	<li><a href="/home/bob/code/menu.html">Главная</a></li>
	<li><a href="articles.html">Статьи</a></li>
</ul>


var b = document.location.pathname;
  var c = $('a[href='+b+']');
  //alert(a);
  var d = $.type(b)=== "string"
  console.log(c);
  console.log(b);
  console.log(d);

на выходе

[]
/home/bob/code/menu.html
true

другие варианты не прокатывают
var c = $('a[href=document.location.pathname]'); инвалид
var c = $("a[href="+document.location.pathname+"]"); так должно работать, но пишет синтаксическая ошибка

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

nikita.mmf 24.06.2011 14:10

Не правильно указываете аттрибут:
$('a[href="b"]');
$('a[href="'+document.location.pathname+'"]');

romanco 24.06.2011 14:21

Цитата:

Сообщение от nikita.mmf (Сообщение 110298)
Не правильно указываете аттрибут:
$('a[href="b"]');
$('a[href="'+document.location.pathname+'"]');

ага второй вариант сработал, а вот первый нет

var c = $('a[href="'+b+'"]') вот такой вариант проходит. Получается в общем случае переменную нужно обрамлять в доп. кавычки.

nikita.mmf 24.06.2011 15:48

romanco, думал b это не переменная, а строка для примера; сорри, недоглядел.:)


Часовой пояс GMT +3, время: 17:26.