jQuery追加使用for循环

时间:2014-01-12 16:46:26

标签: javascript 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>');
};

所以我试图在for循环中将span元素追加到我生成的html中,但由于某些原因我不断收到错误。没有添加的span类,我的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' 

我无法弄清楚我哪里出错......有什么想法吗?

1 个答案:

答案 0 :(得分:2)

摆脱选择器中的单引号。

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

这相当于一个看起来像这样的选择器:

"#A"

而不是:

"'#A'"

最外面的引号只是字符串文字语法的一部分,我用它来显示。选择器字符串的实际内容为#A,而您有'#A''在该位置中对选择器字符串的实际内容没有任何有效含义。