更改链接不适用于jquery

时间:2012-05-20 12:10:44

标签: javascript jquery

我有这个链接:

<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>

我想使用此代码添加/更改不同的url参数:

 $("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');

});

问题是jquery代码无法运行..我试图将其移动到文档准备就绪..但它也不起作用..

1 个答案:

答案 0 :(得分:4)

向我跳出来的是你在这一行上混合你的双引号和单引号:

$(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');

尝试将它们全部更改为双引号,并在"中的&符号后删除额外的"&"FRefID=" - 如下所示:

$(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);

你拥有它的方式是一个包含看起来像代码的东西的单个字符串。我改变它的方式是将几个字符串和变量连接在一起......(注意与StackOverflow语法高亮的区别。)

还要注意以下代码:

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

  } 

...可以在 .each()循环之前移动到,因为它只在document上运行,因此每次迭代都会产生相同的结果。

(当然,由于您引用了几个未显示的变量,因此可能存在其他问题。)