使用jQuery修改超链接的onclick URL参数

时间:2012-09-04 20:01:07

标签: jquery sharepoint attributes onclick href

我在SharePoint页面上有一系列链接,我正在尝试修改其中一个常见的URL参数。链接都看起来像这样:

<a href="javascript:" onclick="javascript:RefreshPageTo(event, '/dev/Pages/stPCT.aspx?Paged=TRUE&amp;p_ID=357\u0026PageFirstRow=31\u0026FilterField1=Number&amp;FilterValue1=0000123450&amp;&amp;\u0026View={FC071FA0-12AA-7854-905E-0C4429FFFD52}&amp;thisID=STRINGID');javascript:return false;" id="PagingLink" class="PagingLink"> Next</a>

我想要发生的是重写链接以将“thisID = STRINGID”更改为“thisID = 0000123450”...到目前为止,我已尝试(未成功)以下内容。

$(".PagingLink").each( function(index,element) {
    url = $(element).onclick();
    console.log(url);
    newurl = url.replace(/STRINGID/gi,"0000123450");
    $(element).attr('href', newurl);                                                               
});

非常感谢任何和所有帮助。

4 个答案:

答案 0 :(得分:4)

我会这样做:

 $(".PagingLink").each( function(index,element) {
        url = $(element).attr('onclick');
        console.log(url);
        newurl = url.replace(/STRINGID/gi,"0000123450");
        $(element).attr('href',newurl);                                                               
    });

你的错误出现在 .onclick 中,你应该用 attr()来获取它,因为它会让你获得正确的值。

答案 1 :(得分:1)

您可能因当前的jQuery代码而出现JavaScript错误,因为没有名为onclick()的方法。您可以使用attr()方法访问onclick值,如下所示:

url = $(element).attr('onclick');

其余代码应该正确执行。

答案 2 :(得分:0)

您需要更改onclick属性中的文本,而不是href属性。看到这个小提琴:http://jsfiddle.net/fQEdV/2/

更改href不会决定页面的去向,因为Sharepoint使用javascript在链接的click事件中重定向用户。如果用户已禁用javascript,则无论如何都不会为您的脚本运行更新此脚本的脚本。

答案 3 :(得分:0)

        $(".PagingLink").each( function(index,element) {
        url = $(element).onclick();
        console.log(url);
        newurl = url.replace(/STRINGID/gi,"0000123450");
        $(element).attr('href', newurl);                                                               
    });

检查此

            $(".PagingLink").each( function(index,element) {
            $(element).attr('href').replace(/STRINGID/gi,"0000123450");                                                              
    });

.attr(“value”)。replace('0','Day')