Мотивация, по которой я бы предпочел использовать поле data
, заключается в том, что я считаю id
уникальным идентификатором, связанным с элементом DOM.
В вашем примере предлагается не цена как уникальный идентификатор, а обходной путь, позволяющий сканировать DOM для элемента цены.
Даже если это касается уникального идентификатора, скажем, идентификатор в качестве первичного ключа из базы данных я бы использовал что-то вроде data-id
, поскольку это более информативно упоминает, что мы говорим о реальных данных , а не об идентификаторе элемента DOM, который может быть или не быть просто обобщенным c описание, которое просто фокусируется на уникальности.
Из-за этого имеет смысл иметь универсальный атрибут c для определения цены (это все, что вы хотите, чтобы он был семантически), и вы можете выделить поле пользовательских данных, которое вы хотите получить позже. в вашем javascript коде.
Без фантазии:
<div>
<div data-type="price" data-price='5'>5<span>$</span></div>
<div data-type="price" data-price='6'>6<span>$</span></div>
</div>
var prices = document.querySelectorAll("[data-type='price']");
for (let i = 0; i < prices.length; i++) {
console.log('price:', prices[i].getAttribute('data-price'));
}
https://jsfiddle.net/b03c7ars/