Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Выборка элементов querySelectorAll (https://javascript.ru/forum/events/71107-vyborka-ehlementov-queryselectorall.html)

Dilettante_Pro 12.12.2017 18:02

Taichi,
Цитата:

Сообщение от Nexus
в строке 14 замените "innerHTML" на "value".

Кроме того, в цикле каждый следующий aa затирает результат предыдущего.

Taichi 12.12.2017 18:10

Посему мне подсказали записывать переменные чезез aa[], что бы через цикл добраться до каждого. Спасибо большое, ошибка мелкая а проблем много.

Nexus 12.12.2017 18:12

Taichi, Dilettante_Pro имел ввиду, что изменяя свойство "innerHTML", элемента #demo в строке 13 вы постоянно перезаписываете контент этого поля.

Taichi 12.12.2017 18:21

Задача предстоит такая:
var aa = document.querySelectorAll('form.intake input[name="aa[]"]'),
	       bb = document.querySelectorAll('form.intake input[name="bb[]"]');

Мне нужно каждый инпут аа[] умножить на инпут bb[], и вывести в инпут сс[], а потом все результаты сложить в переменную FullPay.
И все это в динамике, так как инпуты можно как добавлять так и удалять.
function FullPay()
{
     var aa = document.querySelectorAll('form.intake input[name="aa[]"]'),
	       bb = document.querySelectorAll('form.intake input[name="bb[]"]');
	 alert(aa);
     for (var i = 0; i < aa.length; i++) {
		 cc[i] = aa[i]*bb[i];
		 document.getElementById("cc[]").innerHTML = "Results =" + cc[i].value
  }
}
$('form.intake').on('input', 'click','input[name="aa[]"], input[name="bb[]"]', FullPay);

но что то, я чувствую, не осилю сам =(

Taichi 12.12.2017 19:19

function FullPay()
{
     var aa = document.querySelectorAll('form.intake input[name="aa[]"]'),
	        bb = document.querySelectorAll('form.intake input[name="bb[]"]'),
			cc = document.querySelectorAll('form.intake input[name="cc[]"]'),
			FullPay = document.querySelector('.FullPay');
     for (var i = 0; i < aa.length; i++) {
		 cc[i].value = (+aa[i].value||0) * (+bb[i].value||0);
	     FullPay.innerHTML += +cc[i].value;
  }
}


Вот, уперся в проблему, точнее две.
Не могу сделать так что бы переменная сс[i] заходила в тот инпут который нужно, выходит только со смещением, то есть выводит сумму в последний инпут сс[].

И еще, не выходит правильно сложить результат в FullPay.
Подскажите, что куда и как правильно?

рони 12.12.2017 20:01

Taichi,
function FullPay()
{
     var aa = document.querySelectorAll('form.intake input[name="aa[]"]'),
          bb = document.querySelectorAll('form.intake input[name="bb[]"]'),
      cc = document.querySelectorAll('form.intake input[name="cc[]"]'),
      full  = document.querySelector('.FullPay'),
      sum = 0;
     for (var i = 0; i < aa.length; i++) {
     cc[i].value = (+aa[i].value||0) * (+bb[i].value||0);
       sum += +cc[i].value;
  };

   full.innerHTML = sum
}

Taichi 12.12.2017 20:09

Вложений: 1
Я выносил тоже переменную из цикла, но у меня не заработало. И ваш пример у меня, чего то, не работает:(

Прикрепил скрин формы.

рони 12.12.2017 20:14

Цитата:

Сообщение от Taichi
И ваш пример у меня, чего то, не работает

не телепат :)

Taichi 12.12.2017 20:19

Вложений: 1
Сейчас, поднастрою антенну для телепатии, а то действительно слабо передает.

Прикрепил скин формы для варианта:
function FullPay()
{
     var aa = document.querySelectorAll('form.intake input[name="aa[]"]'),
	        bb = document.querySelectorAll('form.intake input[name="bb[]"]'),
			cc = document.querySelectorAll('form.intake input[name="cc[]"]'),
			full = document.querySelector('.FullPay');
     for (var i = 0; i < aa.length; i++) {
		 cc[i].value = (+aa[i].value||0) * (+bb[i].value||0);
	     full.innerHTML += parseInt (+cc[i].value);
  }
}

Taichi 12.12.2017 20:21

Не знаю, почему, но если объявить какую то переменную опосля
FullPay = document.querySelector('.FullPay');

Скрипт, как будто бы теряет его из памяти. :blink:


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