jQuery: нераспознанное выражение - PullRequest
8 голосов
/ 07 февраля 2012
$(document).ready(function(){

    var page = window.location.hash;
    if(page != ""){
        $('a[href='+ page +']').addclass('selected');
        pageload(page.replace('#/page/', 'pages/?load='));
    }

    $('#top a').click(function(event){  
        $('#top a').removeClass('selected');
        $(this).addClass('selected');

        pageload($(this).attr('href').replace('#/page/', 'pages/?load='));

        event.preventDefault;
    });
});

<div id="top">
    <a href="#/page/link">Link</a>
    <a href="#/page/link">Link</a>
    <a href="#/page/link">Link</a>
    <a href="#/page/link">Link</a>
    <a href="#/page/link">Link</a>
</div>

Поэтому, когда я пытаюсь это сделать и загружаю страницу, используя window.location.hash, я получаю сообщение об ошибке в консоли:

Uncaught Error: Синтаксическая ошибка, нераспознанное выражение: [href = # / page / link]

Как я могу заставить эту работу работать?

Ответы [ 2 ]

18 голосов
/ 07 февраля 2012

Попробуйте вместо этого:

$('a[href="'+ page +'"]').addClass('selected');

(Вам необходимо экранировать значение href - при этом вы получите a[href="#/page/link"].)

0 голосов
/ 07 февраля 2012

Ваше регулярное выражение не нуждается в речевых отметках:

replace(#/page/, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...