2012-05-20 34 views
0

工作我有此鏈接:改變鏈接犯規與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代碼不工作..我試圖把它移動到文檔準備..但它並沒有在那裏工作..

回答

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上運行,因此每次迭代都會產生相同的結果。

(當然有可能,因爲你引用未示出的幾個變量是其他問題。)

+0

我不認爲這是解決方案...我改變它..是他們的一種方法來使JavaScript覆蓋其他JavaScript代碼..我認爲這可能是問題 –

+0

我不明白你的意思是關於覆蓋其他碼。你的'.each()'循環需要處於一個準備好的文檔中(或者在它處理的所有元素之後的主體底部)。但鑑於你沒有說過「不工作」是指「做某件事情,但不是正確的事情」或「什麼都不做」或「在控制檯上顯示各種錯誤」,我不知道我還能提出什麼建議。 .. – nnnnnn

+0

好吧,我神奇地修好了它 –