jQuery 如何获取点击链接的查询参数?

绿悠悠 发布于 2011/07/19 10:24
阅读 2K+
收藏 2

例如有这么个链接:

<a href="/users/xxxx?width=640" class="dialogOnClick">Create Account</a>

代码如下:

$('.dialogOnClick').live('click', function() {
    // How to get 640, given we look for the width param?
    console.log( $(this).?????)
});

我要获取640这个参数值,应该很简单的吧,可是我不会 :(

加载中
1
华宰
华宰
$('.dialogOnClick').live('click', function() {
    console.log( this.search.match(/width=([^&]*)/)[1] );
});
1
letjs_in
letjs_in

你不是提过类似的问题吗?

/**
*@param {string} url 完整的URL地址
*@returns {object} 自定义的对象

*@description 用法示例:var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');

myURL.file='index.html'

myURL.hash= 'top'

myURL.host= 'abc.com'

myURL.query= '?id=255&m=hello'

myURL.params= Object = { id: 255, m: hello }

myURL.path= '/dir/index.html'

myURL.segments= Array = ['dir', 'index.html']

myURL.port= '8080'

yURL.protocol= 'http'

myURL.source= 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

*/
function parseURL(url) {
var a =  document.createElement('a');
a.href = url;
return {
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port,
query: a.search,
params: (function(){
    var ret = {},
        seg = a.search.replace(/^\?/,'').split('&'),
        len = seg.length, i = 0, s;
    for (;i<len;i++) {
        if (!seg[i]) { continue; }
        s = seg[i].split('=');
        ret[s[0]] = s[1];
    }
    return ret;
})(),
file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
hash: a.hash.replace('#',''),
path: a.pathname.replace(/^([^\/])/,'/$1'),
relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
segments: a.pathname.replace(/^\//,'').split('/')
};
}

letjs_in
letjs_in
把这个函数放到辅助函数里面吧,非常有用。
返回顶部
顶部