2014-03-28 99 views
0

我已經設置了一個包含字母表的元素數組,並試圖使用jquery將每個值附加爲超鏈接。我可以在數組中看到我的值,但在我的頁面上,它們顯示爲未定義。有人可以點亮一下嗎?謝謝。追加到JQuery中的元素

<p id="alphabet"><a href="#" class="alphaChar"></a></p> 
<script> 
    var alph = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",  "Q", "R", "S", "T", "U", "W", "X","Y","Z"]; 
    $.each(alph, function(index, value){ 
    $("a .alphaChar").append().html("<a href='"#"' class='alphaClass'> " + alph.val + "</a>"); 
}); 
</script> 
+0

的'「‘#’」'好像你正在構建的''元素中錯誤的字符串。 – xxbbcc

+2

'alph.val'更改爲'值' –

+0

永遠不要在循環中將元素附加到DOM! – nietonfir

回答

3

了一些問題,

使用value,而不是alph.val,

你的選擇是錯的,(你在找類alphachar的孩子)

$("a.alphaChar") 

和你的.append().html(..)是錯誤的 - 你可以在JQuery中鏈接函數,所以你實際上做的是「不添加任何內容,然後將整個元素的HTML設置爲......」。

$("a.alphaChar").append(< HTML GOES HERE >); 

看到這個小提琴 http://jsfiddle.net/jFIT/wW5CZ/

var alph = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "W", "X", "Y", "Z"]; 

$.each(alph, function (index, value) { 
    console.log(value); 
    $("a.alphaChar").append("<a href='\"#\"' class='alphaClass'> " + value + "</a>"); 
}); 
+1

實際上有一條評論 - 您將所有這些鏈接附加到主鏈接,...是否正確?或者你想在alphachar主鏈接中添加這些UNDER。 (如果你想在它的alphachar鏈接下使用'.after'而不是'.append' –

2

而不是其附加一個循環,構建一個完整的DOM元素,並在年底追加:

var html = "" 
$.each(alph, function(index, value){ 
    html += "<a href='#' class='alphaChar'> " + value + "</a>"); 
}); 

$("a.alphaChar").append(html); 
0

。在你的代碼中的一些語法錯誤,我認爲要做到這一點:

的JavaScript:

var alph = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "W", "X","Y","Z"]; 
$.each(alph, function(index, value){ 
    $("a.alphaChar").append("<a href='#' class='alphaClass'> " + value + "</a>"); 
}); 
0

使用此代碼

var alph = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P","Q", "R", "S", "T", "U", "W", "X","Y","Z"]; 
for (var i=0; i < alph.length; i++) { 
    $("a .alphaChar").append($("<a href='#' class='alphaClass'>" + alph[i] + "</a>")); 
}