Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Получить все атрибуты через запятую (https://javascript.ru/forum/dom-window/70525-poluchit-vse-atributy-cherez-zapyatuyu.html)

Янковиц 12.09.2017 16:11

Получить все атрибуты через запятую
 
Добрый день. Есть разметка:
<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.09.2017 16:24

Янковиц,
код в строке 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>

Янковиц 12.09.2017 16:27

Спасибо. А можно на jQuery?

рони 12.09.2017 16:33

Цитата:

Сообщение от Янковиц
А можно на 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>

Янковиц 12.09.2017 16:41

Спасибо еще раз. У меня по соседству есть такой же блок с пунктами. Приведенный скрипт выводит все data-value из соседнего. Как конкретизировать div?

j0hnik 12.09.2017 16:50

$(function() {
var data = $.map($(".selectize-input [data-value]"), function(el) {
  return $(el).data("value")
});
alert(data);
});

Янковиц 12.09.2017 17:11

Почему-то пишет ошибку:
TypeError: $(...).data is not a function

рони 12.09.2017 17:18

Янковиц,
jQuery какая версия? хотя дело скорее не в версии, либо ошибки в коде, либо нет jQuery


Часовой пояс GMT +3, время: 04:39.