jQuery append using for loop



我不太确定如何命名,但我希望这个问题本身最有意义。

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 中,但由于某种原因,我不断收到错误。如果没有添加的span类,我的html看起来像这样:

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

我正在尝试做的是在带有相应div id标签的字母内添加一个<span class="header-letter">。出于某种原因,当我像$('#A').append等等一样硬编码时,我可以很好地抓住这封信......但是,如果我尝试使用$("'#" + str.charAt(i) + "'").append执行此操作,则会出现以下错误:

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

我不知道我哪里做错了...有什么想法吗?

去掉选择器中的单引号。

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

这将等效于如下所示的选择器:

"#A"

取而代之的是:

"'#A'"

最外面的引号只是字符串文字语法的一部分,我将其用于显示目的。选择器字符串的实际内容将被#A,而您'#A''在选择器字符串的实际内容中没有任何有效含义。

最新更新