Не могу вытащить .attr () из кнопки, сгенерированной через руль - PullRequest
0 голосов
/ 27 апреля 2020

Я нахожусь в процессе создания веб-скребка для домашнего задания, включающего Express, Пн goose, Cheerio / ax ios и Handlebars. Мой маршрут "/" захватывает объекты Mon goose и рули загружает их на страницу в отдельных карточках. В этих картах создается кнопка сохранения с атрибутом data-id={{_id}}'. Я пытаюсь получить доступ к атрибуту с помощью jQuery, когда он нажимается, чтобы сохранить его в другой коллекции, но $ (this) возвращает неопределенное значение.

js

    $(document).ready(function () {
        $("#artDiv").on("click", ".save", (event) => {
            event.preventDefault();
            let id = $(this).attr("data-id");

            console.log($(this).data("id"));
            console.log(id);        
        })
    });

html

 <div id="artDiv" class="container">
  {{#obj}}
  {{#each .}}
  {{#if headline}}
  <div id="articleCard" class="card">
    <h5 class="card-header">{{altHead}}</h5>
    <div class="card-body">
      <h5 class="card-title">{{headline}}</h5>
      <p class="card-text">{{desc}}</p>
      <a href="{{link}}" target="_blank" class="btn btn-primary">Visit</a>
      <button data-id="{{_id}}" data-control="saveBtn" type="button" class="btn btn-success save">Save</button>
    </div>
  </div>
  {{/if}}
  {{/each}}
  {{/obj}}
</div>

1 Ответ

0 голосов
/ 27 апреля 2020

Если вы хотите, чтобы ваш элемент, выбранный нажатием, находился в $(this), вы не можете использовать функции стрелок. Вы должны использовать $("#artDiv").on("click", ".save", function (event) { ... });.

...