Dmitry Makovetskiyd
Dmitry Makovetskiyd

Reputation: 7053

changing links doesnt work with jquery

I have got this link:

<a href="http://iml.com/wmaster.ashx?WID=124904080515&amp;cbname=liveealve&amp;LinkID=701&amp;queryid=138&amp;from=freevideo6&amp;promocode=BETLNK&amp;FRefID=-1&amp;FRefP=none&amp;FRefQS=none" rel="nofollow" title="Visit imLive.com" target="_blank" class="sitelink_external imlive">Visit imLive.com</a>

I want to use this code to add/change different url parameters:

 $("a.sitelink_external.imlive").each(function(){
    $params=getUrlVars(document.URL);
       var promocode_addition='';
      if('INFO'==$params['ref']){
            promocode_addition='LCI';

      } 
    $(this).attr("href", 'http://im.com/wmaster.ashx?WID=124904080515&cbname=limdeaive&LinkID=701&queryid=138&promocode=LCDIMLRV" + i + promocode_addition+"&"FRefID=" + FRefID + "&FRefP=" + FRefP + "&FRefQS=" + FRefQS');

});

The problem is that that jquery code doesnt work..I tried to move it to document ready..but it doesnt work there too..

Upvotes: 0

Views: 221

Answers (1)

nnnnnn
nnnnnn

Reputation: 150030

The thing that jumps out at me is that you're mixing your double and single quotes on this line:

$(this).attr("href", 'http://im.com/wmaster.ashx?WID=124904080515&cbname=limdeaive&LinkID=701&queryid=138&promocode=LCDIMLRV" + i + promocode_addition+"&FRefID=" + FRefID + "&FRefP=" + FRefP + "&FRefQS=" + FRefQS');

Try changing them all to double quotes, and remove the extra " from after the ampersand in "&"FRefID=" - like this:

$(this).attr("href", "http://im.com/wmaster.ashx?WID=124904080515&cbname=limdeaive&LinkID=701&queryid=138&promocode=LCDIMLRV" + i + promocode_addition+"&FRefID=" + FRefID + "&FRefP=" + FRefP + "&FRefQS=" + FRefQS);

The way you had it was a single string containing stuff that looked like code. The way I've changed it is several strings and variables being concatenated together... (Note the difference with StackOverflow's syntax highlighting.)

Note also that the following code:

$params=getUrlVars(document.URL);
   var promocode_addition='';
  if('INFO'==$params['ref']){
        promocode_addition='LCI';

  } 

...can be moved to before the .each() loop, since it operates only on the document and thus will produce the same results on every iteration.

(Of course there could be other problems since you reference several variables that aren't shown.)

Upvotes: 4

Related Questions