Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Объяснение кода js (https://javascript.ru/forum/dom-window/66834-obyasnenie-koda-js.html)

Antonjrjr 13.01.2017 12:13

Объяснение кода js
 
Ребят можете объяснить этот js code , я знаю что он делает но как он работает и почему именно так записан не врубаюсь

<script type="text/javascript">
		(function() {
  'use strict';
  var quantityInput = document.querySelector('.quantity'),
    btn = document.querySelector('.btn-generate'),
    result = document.querySelector('.inputs');
 
  btn.onclick = function() {
    var quantity = parseInt(quantityInput.value);
    if (isNaN(quantity) || quantity < 1 || quantity > 10) {
      alert('Type number from 1 to 10');
      return;
    }
 
    result.innerHTML = new Array(quantity).fill().map(function(el, i) {
      return '<input type="text" id="dyn-input-' + i + '" placeholder="' +
        'Text field number ' + (i + 1) + '"><br>';
    }).join('');
  }
})();

Dilettante_Pro 13.01.2017 12:24

Antonjrjr,
А конкретно что непонятно?
Практически все по алгоритму, описанному ksa http://javascript.ru/forum/dom-windo...s-funkcii.html

Antonjrjr 13.01.2017 12:30

последний обзац вообще не понятный

Dilettante_Pro 13.01.2017 12:48

Antonjrjr,
Цитата:

Сообщение от Antonjrjr
последний обзац вообще не понятный

Это такой вариант цикла с использованием перебирающих методов
https://learn.javascript.ru/array-iteration
Можно было бы написать и просто в цикле for

Antonjrjr 13.01.2017 12:52

а можешь написать просто в цикле for ? плз

Dilettante_Pro 13.01.2017 13:00

<input type="text" class="quantity" />
<button class="btn-generate">Создать</button>
<div class="inputs"></div>
<script type="text/javascript">

  var quantityInput = document.querySelector('.quantity'),
    btn = document.querySelector('.btn-generate'),
    result = document.querySelector('.inputs');
 
  btn.onclick = function() {
    var quantity = parseInt(quantityInput.value);
    if (isNaN(quantity) || quantity < 1 || quantity > 10) {
      alert('Type number from 1 to 10');
      return;
    }
 
    result.innerHTML = "";
    for(var i = 0;i < quantity;i++) {
      result.innerHTML += '<input type="text" id="dyn-input-' + i + '" placeholder="' +
        'Text field number ' + (i + 1) + '"><br>';
    }
  }

</script>

Antonjrjr 13.01.2017 13:20

Спасибо ! но вы не написали комментарии с пояснением ((

ksa 13.01.2017 13:38

Цитата:

Сообщение от Antonjrjr
а можешь написать просто в цикле for ?

Цитата:

Сообщение от Antonjrjr
но вы не написали комментарии с пояснением ((

И не пошел сдавать преподу вместо тебя... :haha:

Antonjrjr 13.01.2017 14:17

хорошо разберусь сам , а скажи свойство document.queryselector это из jquery ?

ksa 13.01.2017 14:30

Цитата:

Сообщение от Antonjrjr
свойство document.queryselector это из jquery ?

Это не свойство... :no: И это не из jquery... :no:


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