их перебрав, нашел такое решение var a = [].filter.call(el.attributes, function(at) { return /^data-/.test(at.name); }); но что то не понял как его применить, кто знает ?
Нужно передать атрибуты элемента То есть Const elem = document.querySelector() [].filter.call(elem.attributes... Но честно говоря, немного треш, Если нужно пройтись по ряду элементов и отдельно по их датасету, то: Const arr = document.querySelectorAll() Arr.foreach(elem=>elem.dataset.forEach(dataAttr=>{ If validName(dataAttr) { /* делай что надо) } }
окей понял, спасибо
То есть у элемента можно спокойно получить все дата-атрибуты через El.dataset, без необходимости перебрать все атрибуты
нужны было получить не все атрибуты а определенные
Воу, чел, что так жёстко?
зато работает)
Лучше постарайся подумать, как сделать лучше
[].forEach.call(item.attributes, function (attr) { Это заменяется на item.dataset.foreach(attr А работу с атрибутами и приведением к камелКейсу уже за тебя придумали https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset#name_conversion
ну да, чет слишком хреновый код
Ну это просто кривая поделка, которую стыдно даже ребенку показывать, само собой, тут надо переделывать, я больше про стиль мышления, делать “легко” - неэффективно, если ты не индус-биоробот
где заплакал один индус)
Обсуждают сегодня