Получить все атрибуты через запятую
Добрый день. Есть разметка:
<div class="selectize-input"> <div data-value="7" class="item">запись</div> <div data-value="5" class="item">контент</div> <div data-value="4" class="item">дабл тег</div> </div> Как разом получить следующую запись: 7, 5, 4 ??? Количество элементов откуда нужно получить data-value - неизвестно. Спасибо И еще.. весь это блок создается динамически.. |
Янковиц,
код в строке 12 запустить после создания блока <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script> window.addEventListener('DOMContentLoaded', function() { var data = [].map.call( document.querySelectorAll('[data-value]'), function(el) { return +el.dataset.value }); alert(data); }); </script> </head> <body> <div class="selectize-input"> <div data-value="7" class="item">запись</div> <div data-value="5" class="item">контент</div> <div data-value="4" class="item">дабл тег</div> </div> </body> </html> |
Спасибо. А можно на jQuery?
|
Цитата:
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script> $(function() { var data = $.map($("[data-value]"), function(el) { return $(el).data("value") }); alert(data); }); </script> </head> <body> <div class="selectize-input"> <div data-value="7" class="item">запись</div> <div data-value="5" class="item">контент</div> <div data-value="4" class="item">дабл тег</div> </div> </body> </html> |
Спасибо еще раз. У меня по соседству есть такой же блок с пунктами. Приведенный скрипт выводит все data-value из соседнего. Как конкретизировать div?
|
$(function() { var data = $.map($(".selectize-input [data-value]"), function(el) { return $(el).data("value") }); alert(data); }); |
Почему-то пишет ошибку:
TypeError: $(...).data is not a function |
Янковиц,
jQuery какая версия? хотя дело скорее не в версии, либо ошибки в коде, либо нет jQuery |
Часовой пояс GMT +3, время: 04:39. |