帮助Jquery功能

时间:2010-12-27 13:14:55

标签: javascript jquery

好的,这是我的问题:

我在定义为RedirectLink(a,b,c,d,e)的第三方javascript库中有此功能,其中a,b,c,d,e是字符串。

我的网站上也有一个链接再次自动生成(我无法更改)

<a href="javascript: RedirectLink("1", "2", "3" ,"4" ,"5")" id="mylink" >

我需要做的是,读取此锚点(mylink)href,我需要调用RedirectLink函数,例如javascript: RedirectLink("1", "2", "3" + param, "4" , "5")。其中param来自查询字符串。

第一部分很简单,读取href但是如何改变第三个参数?

2 个答案:

答案 0 :(得分:1)

嗯......你可以这样做一个黑客:

通过javascript,您可以将href从javascript: RedirectLink(1,2,3,4,5)更改为javascript: MyRedirectLink(1,2,3,4,5),然后定义MyRedirectLink

var param = 'xxx';
function MyRedirectLink(a, b, c, d, e) {
    RedirectLink(a, b, c + param, d, e)
}

不优雅但它应该有用(如果param可以在你的函数之外计算)。

答案 1 :(得分:1)

这样可行:

$(function() {

    var $mylink = $('#mylink');
    var href = $mylink.attr('href');

    // getting the array of arguments
    var args = href.substr( href.indexOf('(') + 1 );
    args = args.slice(0, args.length - 1);
    args = args.split(',');

    // getting the string value for each array item
    for (var i = 0; i < args.length; i++) {
        args[i] = $.trim(args[i]);
        args[i] = args[i].slice(1, args[i].length - 1);
    }

    // augmenting the third argument
    args[2] += window.location.href;

    $mylink.attr('href', '#').click(function() {
        RedirectLink(args[0], args[1], args[2], args[3], args[4]);
        return false;
    });

});