Вставить атрибут html в массив onClick
Я пытаюсь вставить числовой атрибут элемента в массив с помощью простой функции, но массив содержит только пустые значения, разделенные запятыми. Вот HTML-код.
<button type="button" class="btn btn-success btn-lg" number="12" onclick="basket.push(this.number)">toBakset</button>
<button type="button" class="btn btn-success btn-lg" number="15" onclick="basket.push(this.number)">toBakset</button>
<button type="button" class="btn btn-success btn-lg" number="18" onclick="basket.push(this.number)">toBakset</button>
с самого начала массив "корзина" пуст. Кажется, этот вопрос настолько глуп, но я не могу найти решение:(
3 ответа
Число не является допустимым атрибутом для элемента кнопки. Чтобы получить его, вы должны использовать функцию, отличную от API
onclick="basket.push(this.getAttribute('number'))"
Еще лучше, храните number
атрибут внутри data-
разметка вот так:
<button data-number="5" ...
Так что это соответствует стандартам. Тогда вы бы использовали
onclick="basket.push(this.getAttribute('data-number'))"
чтобы получить это.
Это потому, что число не является стандартным атрибутом, поэтому this.number не является ничем. Вы должны сделать это по-другому, например, дать идентификатор каждой кнопке и сохранить массив, содержащий идентификаторы, какие номера имеют какие
- кнопка тип ="кнопка"?
- номер атрибута?
использование data-*
атрибуты!
<button onclick="basketPush(this)" data-number="12" class="btn btn-success btn-lg">toBakset</button>
var basket = [];
function basketPush( that ){
basket.push( that.dataset.number );
}
DOCS: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes *