Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   создать многоуровневый массив с помощью each (https://javascript.ru/forum/misc/77798-sozdat-mnogourovnevyjj-massiv-s-pomoshhyu-each.html)

mortido 22.06.2019 19:01

создать многоуровневый массив с помощью each
 
Всем привет.
Весь код тут:
http://jsfiddle.net/ybLu60he/1/
Не могу поменять как сделать массив такого вида:
0: {url: "123", title: "312"}
1: {url: "asd", title: "dsa"}

с текущим кодом результат такой:
title: "das"
url: "asd"

рони 22.06.2019 19:36

mortido,
<!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() {
let arr = $.map($(".container"), ({children : [{value : url}, {value : title}]}) => ({url,title}));
console.log(arr)
});
  </script>
</head>

<body>
<div class="creatives">
<div class="container">
<input class="activeInput" type="text" name="url" value="123">
<input class="activeInput" type="text" name="title" value="312">
</div>
<div class="container">
<input class="activeInput" type="text" name="url" value="asd">
<input class="activeInput" type="text" name="title" value="das">
</div>
</div>
</body>
</html>

mortido 23.06.2019 09:51

Цитата:

Сообщение от рони (Сообщение 509337)
mortido,
<!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() {
let arr = $.map($(".container"), ({children : [{value : url}, {value : title}]}) => ({url,title}));
console.log(arr)
});
  </script>
</head>

<body>
<div class="creatives">
<div class="container">
<input class="activeInput" type="text" name="url" value="123">
<input class="activeInput" type="text" name="title" value="312">
</div>
<div class="container">
<input class="activeInput" type="text" name="url" value="asd">
<input class="activeInput" type="text" name="title" value="das">
</div>
</div>
</body>
</html>

Спасибо. А как можно добраться до инпутов, если они например обернуты в дополнительный тег <label>?
вот так:
<label><input class="activeInput" type="text" name="url" value="123"></label>
<label><input class="activeInput" type="text" name="title" value="312"></label>

рони 23.06.2019 10:12

mortido,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script>
document.addEventListener("DOMContentLoaded", ()=> {
let arr = [...document.querySelectorAll(".container")].map(div => {
  const [{value : url}, {value : title}] =  div.querySelectorAll(".activeInput");
  return {url,title}
});
console.log(arr) }
)
  </script>
</head>

<body>
<div class="creatives">
<div class="container">
<label><input class="activeInput" type="text" name="url" value="123"></label>
<label><input class="activeInput" type="text" name="title" value="312"></label>
</div>
<div class="container">
<label><input class="activeInput" type="text" name="url" value="asd"></label>
<label><input class="activeInput" type="text" name="title" value="das"></label>
</div>
</div>
</body>
</html>


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