jQuery добавляет элемент к каждому div +, отображает его ID

Я пытаюсь добавить кнопку к каждому div с определенным классом, мой код пока:

HTML:

<div id="865" class="gw-gopf-isotope-item">
 <div class="gw-gopf-post-overlay-inner">
  // button goes here
 </div>
</div>

JQuery:

$( ".gw-gopf-isotope-item" ).each(function() {
 var gallid = $(this).attr('id');
 $('.gw-gopf-post-overlay-inner').append('<a class=\"gw-gopf-btn gw-gopf-post-overlay-btn thickbox\" href=\"#TB_inline?width=600&height=550&inlineId=gallery-\"+gallid+\"\">View Photos</a>');
});

Как это работает:

  • пользователь создает галерею в админке
  • они отображаются на веб-интерфейсе
  • другой сценарий, который я написал, создает набор материалов, уникальных для каждой галереи
  • кнопка предназначена для ссылки на этот уникальный толстый ящик

Код добавления работает нормально, но он не генерирует уникальный идентификатор для каждой ссылки, поэтому я думаю, что мне нужно использовать каждую функцию?

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

Любая помощь очень ценится

1 ответ

Так как вы используете ' как разжижитель и избегающие цитаты \"ты пропускаешь два раза ' вокруг '+gallid+'

Так должно быть:

$('.gw-gopf-post-overlay-inner').append('<a class=\"gw-gopf-btn gw-gopf-post-overlay-btn thickbox\" href=\"#TB_inline?width=600&height=550&inlineId=gallery-'+gallid+'\">View Photos</a>');

Если вы все еще не получаете идентификатор, отладьте его.

Вы можете увидеть, если gallid генерируется путем отправки его на консоль с console.log(gallid); внутри цикла.each

$( ".gw-gopf-isotope-item" ).each(function() {
 var gallid = $(this).attr('id');
 console.log(gallid);
...

});

Посмотрите на эту скрипку:

https://jsfiddle.net/a4zh87jg/4/ Это правильно с вашим кодом!

Другие вопросы по тегам