我不确定如何标题,但我希望问题本身最有意义。
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'
我无法弄清楚我哪里出错......有什么想法吗?
答案 0 :(得分:2)
摆脱选择器中的单引号。
$("#" + str.charAt(i)).append
这相当于一个看起来像这样的选择器:
"#A"
而不是:
"'#A'"
最外面的引号只是字符串文字语法的一部分,我用它来显示。选择器字符串的实际内容为#A
,而您有'#A'
。 '
在该位置中对选择器字符串的实际内容没有任何有效含义。