2014-01-12 100 views
0

我真的不知道如何標題這個,但我希望這個問題本身會最有意義。jQuery追加使用循環

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

for(var i=0; i<str.length; i++){ 
    $("div[id^= " + str.charAt(i) + "]").wrapAll("<div id='" + str.charAt(i) + "' 
     class='alpha-content'></div>"); 
    //$("'#" + str.charAt(i) + "'").append('<span class="letter-header">' + 
    // str.charAt(i) + '</span>'); 
    $('#A').append('<span class="letter-header">' + str.charAt(i) + '</span>'); 
}; 

所以我試圖將span元素追加到我在for循環中生成的html,但由於某些原因我不斷收到錯誤。隨着出添加跨度類,我的HTML看起來是這樣的:

<div id="A" class="alpha-content"> 
    <div id="someName" class="inner-content"> 
    <a href="someName">someName</a> 
    </div> 
</div> 

什麼,我試圖做的是增加一個<span class="header-letter">與相應的DIV ID標籤信裏面。出於某種原因,我可以抓住的信就好了,當我把它硬編碼像$('#A').append等等等等......但是,如果我嘗試用$("'#" + str.charAt(i) + "'").append做我得到一個錯誤說這個:

Uncaught Error: Syntax error, unrecognized expression: '#A' 

我可以」弄清楚我出錯的地方......有什麼想法?

回答

2

擺脫選擇器中的單引號。

$("#" + str.charAt(i)).append 

這將是等效的選擇,看起來像這樣:

"#A" 

,而不是這樣的:

"'#A'" 

最外層的引號只是字符串文字語法的一部分,我用於顯示目的。選擇器字符串的實際內容將爲#A,而您有'#A''在選擇器字符串的實際內容中沒有任何有效含義。

+0

呃......這很簡單。我不知道我在想什麼...... – scapegoat17