Anju Thapa
Anju Thapa

Reputation: 257

capture link text and append to the URL as query string

I want to capture the text that is in between anchor link tag and pass it to the href value as query string so it looks like http://mysite.com/events/Pages/default.aspx?cat=cancer

The reason I can't add that manually is because the value in between and is dynamic. How do I capture that and append to the url using jquery or javascript??

or i can maybe, at the event of Cancer link being clicked, direct it to http://mysite.com/events/Pages/default.aspx?cat=cancer

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

Upvotes: 1

Views: 5273

Answers (3)

Andrew Whitaker
Andrew Whitaker

Reputation: 126072

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

Or you could replace the href attribute for each link:

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

Then clicking each link will automatically direct the user correctly. Your selector ($("a") should be more specific, depending on your markup)

Example: http://jsfiddle.net/6U749/

Edit: If you have to do it inline, here's one way:

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

Upvotes: 3

Deleteman
Deleteman

Reputation: 8700

You can do:

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

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

Upvotes: 0

Tejs
Tejs

Reputation: 41256

You could do something like this:

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

Then, for any link, it would automatically update the HREF to the current HREF plus the value of the node.

Upvotes: 0

Related Questions