Я не был уверен, как это назвать, но я надеюсь, что сам вопрос будет иметь наибольший смысл.
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 в свой сгенерированный html в цикле for, но по какой-то причине я продолжаю получать ошибки. Без добавления класса 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">
внутри буквы с соответствующим тегом id div. По какой-то причине я могу получить письмо просто отлично, когда у меня его жестко закодировано, как $('#A').append
blah blah blah... Но если я попытаюсь сделать это с помощью $("'#" + str.charAt(i) + "'").append
я получаю сообщение об ошибке:
Uncaught Error: Syntax error, unrecognized expression: '#A'
Я не могу понять, где я ошибся... Любые идеи?
Избавьтесь от одиночных кавычек в селекторе.
$("#" + str.charAt(i)).append
Это будет эквивалентно селектору, который выглядит так:
"#A"
вместо этого:
"'#A'"
Внешние кавычки являются лишь частью синтаксиса строкового литерала, который я использую для отображения. Фактическое содержимое строки селектора будет #A
, тогда как у вас есть '#A'
. '
Не имеет никакого действительного значения в этом месте размещения в фактическом содержании строки селектора.