2013-01-11 135 views
0

我一直在試圖創建使用相同的功能早期定義的變量追加的超鏈接內超鏈接:Passing Javascript variable to <a href >添加JavaScript變量腳本

var NAMEVARIABLE = responseArray[i].Name; 

var TITLE_Game = document.createElement("p"); 
TITLE_Game.className = "TITLE_Game"; 
TITLE_Game.innerHTML = "<a href='Game_NAMEVARIABLE.html'>Games</a>"; 

我曾嘗試以下使用在這裏找到了解決辦法

<a href="Game_.html" onclick="location.href=this.href+'?key='+NAMEVARIABLE;return false;">Games</a> 

但這並沒有奏效。然後我嘗試添加了ID:

<a id="link" href="Game_.html?propid=">Games</a> 

並加入這腳本:document.links["link"].href += NAMEVARIABLE;

這也不能工作。這些鏈接出現在Isotope中,我遇到了新手問題,確保我的JSON數據在腳本執行前加載。現在這一切都奏效了,但我不確定上述方法不起作用的原因是由於類似的問題,還是因爲它們不是正確的方法。

任何幫助,非常感謝。謝謝

+0

你有很多鏈接嗎?還是隻有一個? – dunli

+0

它似乎在這裏工作http://jsfiddle.net/arunpjohny/8uekj/ –

+0

@ArunPJohny我知道它在那種情況下工作(因爲它是其他地方的解決方案),但它工作在同位素(或任何函數)是這個問題的一部分,你的jsfiddle沒有解決這個問題。感謝您對它進行測試。 – gcubed

回答

1

首先嚐試調試變量:

var NAMEVARIABLE = responseArray[i].Name; 
alert(NAMEVARIABLE); 

是它返回所需的返回值的。 然後第二件事情,在你的腳本的第一個樣式,試試這個:

TITLE_Game.innerHTML = "<a href='Game_"+NAMEVARIABLE+".html'>Games</a>"; 

我假設你有(靜態)HTML收集與game_[number_id].html格式 ,如果它是的話,你可以用你的第二個進一步的嘗試劇本的風格,而且它改成這樣:

<a href="#" onclick="location.href='Game_'+NAMEVARIABLE+'.html';return false;">Games</a> 

您需要進一步瞭解javascript strings concatenation

0

使用字符串連接來建立你的內部html字符串。

實施例:然後

var nameVariable = 'Foo'; 
var innerHtmlText = nameVariable + 'bar'; 

$('#someElement').html(innerHtmlText); 

someElement的內容將包含文本: 'Foobar的';

0

這可以通過(即純實現10或jQuery)方式沒有太多麻煩。假設你有一些href

<a id="Link" href="/collection/categories/">Games</a> 

純JavaScript方式這<a>元素:

window.onload = function() { 
    var link= document.getElementById('Link'), 
    url = link.href + responseArray[i].Name + '.html'; 

    link.setAttribute('href', url); 
} 

使用jQuery:

$(function(){ 
    var link= $('#Link'), 
    url = link.attr('href') + responseArray[i].Name + '.html'; 

    link.attr('href', url); 
}); 
0

你只需要字符串連接。在大多數現代瀏覽器中修改鏈接的href onclick將被視爲垃圾郵件。

<div id="result"> 
    the result: 
</div> 
<script type="text/javascript"> 
var name = "foo_bar"; 
var url = "page.html?key=" + name; //or.. "page_" + name + ".html"; 
var link = '<a href="' + url +'">link here</a>'; 

$("#result").addClass("g_title"); 
$("#result").append(link); 
</script>