捕获链接文本并将其作为查询字符串附加到URL

时间:2011-12-29 16:41:07

标签: javascript jquery url anchor

我想捕获锚链接标记之间的文本,并将其作为查询字符串传递给href值,使其看起来像http://mysite.com/events/Pages/default.aspx?cat=cancer

我无法手动添加的原因是因为两者之间的值是动态的。如何捕获它并使用jquery或javascript追加到url ??

或者我可以,在点击巨蟹座链接的情况下,将其指向http://mysite.com/events/Pages/default.aspx?cat=cancer

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

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

你可以这样做:

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

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

答案 2 :(得分:0)

你可以这样做:

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

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