Cafecorridor
Cafecorridor

Reputation: 1609

Using a Javascript variable in HTML <a> link

My code goes something like this -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title></title>


    <script type='text/javascript'>

    var random_generator;
    document.write('Random Selection: ');
    var arr=['One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten'];
    var randomnumber=Math.floor(Math.random()*10);
    random_generator=arr[randomnumber];
    document.write(random_generator+ '<br>');


    </script>

<style type="text/css">

</style>
<a href='www.xyz.com/Index1/Index2/Variable/Index4'>Good Morning</a>
</head>
<body> 
</body>  
</html>

In place of Variable in the tag, I want to use random_generator Javascript variable. How do I do that? Thanks in Advance.

NOTE: random_generator doesn't replace the entire link. Only a part of the link (/Variable/). Depending on this value, the user is shown different pages.

Upvotes: 4

Views: 23271

Answers (5)

Scrimothy
Scrimothy

Reputation: 2536

Or maybe you could just write the link as inline js.

​<script>
document.write('<a href="http://www.xyz.com/Index1/Index2/' + random_generator + '/Index4">hello</a>');
</script>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Upvotes: 7

Slowcoder
Slowcoder

Reputation: 2120

I am not sure if i understand your problem. But the following should work if you are trying to dynamically set the link to href (assuming you are not using jquery).

<a href='http://www.xyz.com/Index1/Index2/Variable/Index4' id="index">Good Morning</a>
<script>
    var newUrl = document.getElementById('index').href;
    newUrl = newUrl.replace("Variable", random_generator);
    document.getElementById('index').href = newUrl;
</script>

Upvotes: 1

David Esteves
David Esteves

Reputation: 1604

As far as I know this would not be possible. You could do one of two things:

1 Change the HREF attribute when the document loads. With JQuery you could do something like

$(function() {
 $('a').attr('href', 'www.xyz.com/Index1/Index2/' + random_generator + '/Index4');
});

2 Catch the click event and redirect it with javascript, this would mean even if the user clicked the link multiple times without refreshing the page it would be random.

$(function() {
 $('a').on('click', function(e) {
   e.preventDefault();
   window.location = 'www.xyz.com/Index1/Index2/' + random_generator + '/Index4';
 });
});

If you don't wish you use jquery I'm sure there's plenty examples online to do this with plain javascript.

Upvotes: 0

Josh Bedo
Josh Bedo

Reputation: 3462

pretty sure this will wrk

   document.getElementById('myHref').href = variable;

Upvotes: 0

redDragonzz
redDragonzz

Reputation: 1571

You can use jQuery to update the dom element when the script gets executed

First you must give an id to your href

<a href="#" id="myHref"

and then

$('#myHref').attr('href', variable)

Or you can change the link text var varText = "This is a link"; $('#myHref').text(varText);

Upvotes: 0

Related Questions