jQuery:无法识别的表达式

时间:2012-02-07 16:33:00

标签: javascript jquery hyperlink expression

$(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加载页面时,我在控制台中收到错误消息:

  

未捕获错误:语法错误,无法识别的表达式:   [HREF =#/页/链接]

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:18)

请改为尝试:

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

(你需要逃避href的价值 - 用这个,你得到a[href="#/page/link"]。)

答案 1 :(得分:0)

您的正则表达式不需要语音标记:

replace(#/page/, ...