我不太确定如何命名,但我希望这个问题本身最有意义。
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'
。'
在选择器字符串的实际内容中没有任何有效含义。