使用jQuery从href获取值

时间:2010-04-28 14:44:47

标签: jquery jquery-selectors

我想知道是否有人可以帮助解决我遇到的jQuery问题。

我正在使用Jquery工具库中的工具提示在鼠标悬停在hrefed图像上时创建一个弹出窗口,我想用它来定制调用以更改DIV中的内容。

我使用的链接格式为:

<a href="/venue/1313.htm" class="quickView"><img src="/images/site/quickView83.png" alt="Quick View" width="83" height="20" /></a>

我用来触发提示的代码是:

$(".quickView").live('mouseover', function()
    {
        if (!$(this).data('init'))
        {
            $(this).data('init', true);
            ajax_quickView(); 
            $(this).tooltip
            ({ 
                /* tooltip configuration goes here */ 
                tip: "#quickViewWindow",
                position: "right",
                offset: [0, -300], 
                effect: 'slide' 
            });
            $(this).trigger('mouseover'); 
        }  
    });

我尝试了以下功能从链接中获取ID(在上例中,1313):

function ajax_quickView(){
        var pageNum = $("a.quickView").attr("href").match(/venue/([0-9]+)/).htm[1];
        $("#quickViewWindow").load("/quick-view/", function(){}) 
    }

但是我认为这是它倒下的地方,我认为我的正则表达可能是罪魁祸首......

一旦我得到var pageNum,我认为我可以将它传递到.load中:

$("#quickViewWindow").load("/quick-view/", {id : pageNum }, function(){})

非常感谢

2 个答案:

答案 0 :(得分:5)

首先,您没有正确转义正则表达式中的/字符:

/venue/([0-9]+)/

// should be
/venue\/([0-9]+)/

其次,你没有正确结束你的正则表达式,整行有一些语法错误:

.match(/venue/([0-9]+)/).htm[1];

// should be
.match(/venue\/([0-9]+).htm/)[1]; 

答案 1 :(得分:0)

我不知道工具提示插件,但我认为你的方法有点......麻烦。我使用了jQuery工具及其叠加层,它允许注册一个将被传递给事件源的回调,在这种情况下,这将是hrefd图像,您可以只询问实际的URL。可能不是你正在寻找的答案,但我只是觉得你做的比这更复杂。