JQuery добавить использовать для цикла

0

Я не был уверен, как это назвать, но я надеюсь, что сам вопрос будет иметь наибольший смысл.

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' 

Я не могу понять, где я ошибся... Любые идеи?

Теги:

1 ответ

2
Лучший ответ

Избавьтесь от одиночных кавычек в селекторе.

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

Это будет эквивалентно селектору, который выглядит так:

"#A"

вместо этого:

"'#A'"

Внешние кавычки являются лишь частью синтаксиса строкового литерала, который я использую для отображения. Фактическое содержимое строки селектора будет #A, тогда как у вас есть '#A'. ' Не имеет никакого действительного значения в этом месте размещения в фактическом содержании строки селектора.

  • 0
    Ну ... Это было достаточно просто. Я не знаю, о чем я думал ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню