С JQuery на чистый Javascript код?

всем добрый день.
к сожалению я изучал JS с помощью библиотеки Jquery, и так и не научился толком писать на чистом JS.
Решил что для практики лучше всего переписать свой старый проект с JQ на JS. но к сожалению есть моменты которые мне непонятны(
в HTML есть кнопка с data атрибутом(data-id). нужно что бы при нажатии на эту кнопку в массив Cart записывался этот (data-id), вот как было это на JQ .
<button id="addToCart" data-id="001">в массив</button>

var cart = {};

$('.addToCart').on('click', addToCart() );

function addToCart(){
    var articul = this.attr('data-id');
    cart[articul] = 1;
    console.log(cart);
}


как этот кусочек кода будет выглядеть на чистом Js?
буду очень благодарен за помощь.
  • Вопрос задан
  • 1268 просмотров
Решения вопроса 2
drugoi
@drugoi
Front-end Developer
Советую приглядываться к youmightnotneedjquery

var cart = {};

function addToCart() {
    var articul = this.dataset.id;
    cart[articul] = 1;
    console.log(cart);
}

document.getElementById('addToCart').addEventListener('click', addToCart);
Ответ написан
Комментировать
sevirinov
@sevirinov
Web Developer
Рекомендую более актуальный материал!

<button class="addToCart" data-id="001">в массив 1</button>
<button class="addToCart" data-id="002">в массив 2</button>
<button class="addToCart" data-id="003">в массив 3</button>
<button class="addToCart" data-id="004">в массив 4</button>


var cart = {};

function addToCart(articul) {
  cart[articul] = 1;
  console.log(cart);
}

var addBtn = document.getElementsByClassName('addToCart');
[].forEach.call(addBtn, function(element) {
  element.addEventListener('click', function() {
    addToCart(this.getAttribute('data-id'));
  });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
https://learn.javascript.ru - вторая часть.
Ответ написан
Комментировать
@bro-dev0
JQuery это не js для нубов, это инструмент позволяющий не думать о кроссбраузерности. Даже зная как всё устроено, все равно лучше юзайте готовые либы, в общем случае $(document).on() работает предсказуемие чем addEventListener
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 17:47
7000 руб./за проект
21 нояб. 2024, в 17:30
1500 руб./за проект
21 нояб. 2024, в 17:22
7000 руб./за проект