2011-12-29 112 views
1

我希望捕获的是锚链接标签之间的文本,并将其所以它看起来像http://mysite.com/events/Pages/default.aspx?cat=cancer捕获链接文字和附加到URL作为查询字符串

我之所以可以传递给href值作为查询字符串不要手动添加,因为它们之间的值是动态的。我如何捕获并追加到URL使用jQuery或JavaScript?

或者我可以,也许,以被点击癌症联系的情况下,直接到http://mysite.com/events/Pages/default.aspx?cat=cancer

<a href="http://mysite.com/events/Pages/default.aspx?cat="> Cancer</a> 

回答

3
$("a").on("click", function (e) { 
    e.preventDefault(); 
    window.location = this.href + $.trim($(this).text()); 
}); 

或者你也可以更换href属性为每个链接:

$("a").prop("href", function() { 
    return this.href += $.trim($(this).text()); 
}); 

然后点击每个链接将自动引导用户。您的选择($("a")应更加具体,这取决于你的标记)

例子:http://jsfiddle.net/6U749/

编辑:如果你有行内做到这一点,这里有一个方法:

<a href="http://mysite.com/events/Pages/default.aspx?cat=" onclick="window.location.href = this.href + $.trim($(this).text());"> Cancer</a> 
+0

谢谢。我想在链接本身上添加onclick事件,如下所示:(标签HREF值onclick带我到HREF值+ LinkText)(关闭标签) – 2011-12-29 16:54:39

+1

@AnjuThapa:第二种方法应该完成此操作。考虑将您的标记(HTML)与您的行为(JavaScript)完全分离,以获得更易维护的代码。 – 2011-12-29 16:55:27

+0

我知道ü意味着,但我对XSL文件中像这样:的onClick =“location.href = 'HTTP://mysite.com/events/Pages/test1.aspx KWD =' +的document.getElementById('EventSearchBox “).value的; – 2011-12-29 16:57:51

0

你可以这样做:

$('.someClassImStickingOnLinksThatNeedThisBehavior').each(function() 
{ 
    this.href = $.trim(this.href) + $.trim(this.innerHTML); 
}); 

然后,对于任何链接,它都会自动将HREF更新为当前的HREF加上节点的值。

0

你可以这样做:

var yourlink = $("#youlink"); 
var href = yourlink.attr("href"); 
var text = yourlink.html(); 

yourlink.attr("href", href + "?cat=" + text);