Задать вопрос
NiceIce
@NiceIce
lamer

Как записать в var = 0 если отсутствует input с value (var x = input.value || 0 не работает)?

Здравствуйте, не могу решить проблему с записью value в вар.
Вот скрипт
function addition() {
        	var i0 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[0].getElementsByTagName( 'input' )[1].value || 0;
			var i1 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[1].getElementsByTagName( 'input' )[1].value || 0;
			var i2 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[2].getElementsByTagName( 'input' )[1].value || 0;
			var i3 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[3].getElementsByTagName( 'input' )[1].value || 0;
			var i4 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[4].getElementsByTagName( 'input' )[1].value || 0;
			var i5 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[5].getElementsByTagName( 'input' )[1].value || 0;
   
			var o0 = document.getElementById( 'output1' ).getElementsByClassName( 'cmline' )[0].getElementsByTagName( 'input' )[1].value || 0;
			var o1 = document.getElementById( 'output1' ).getElementsByClassName( 'cmline' )[1].getElementsByTagName( 'input' )[1].value || 0;
			var o2 = document.getElementById( 'output1' ).getElementsByClassName( 'cmline' )[2].getElementsByTagName( 'input' )[1].value || 0;
			var o3 = document.getElementById( 'output1' ).getElementsByClassName( 'cmline' )[3].getElementsByTagName( 'input' )[1].value || 0;
			var o4 = document.getElementById( 'output1' ).getElementsByClassName( 'cmline' )[4].getElementsByTagName( 'input' )[1].value || 0;
			var o5 = document.getElementById( 'output1' ).getElementsByClassName( 'cmline' )[5].getElementsByTagName( 'input' )[1].value || 0;

			
 
			if (isNaN(i1)==true) i1=0;
			if (isNaN(i2)==true) i2=0;
			if (isNaN(i3)==true) i3=0;
			if (isNaN(i4)==true) i4=0;
			if (isNaN(i5)==true) i5=0;
			if (isNaN(o1)==true) o1=0;
			if (isNaN(o2)==true) o2=0;
			if (isNaN(o3)==true) o3=0;
			if (isNaN(o4)==true) o4=0;
			if (isNaN(o5)==true) o5=0;

 
			var e1 = (i1 * o0) + (i2 * o0) + (i3 * o0) + (i4 * o0) + (i5 * o0) + (i2 * o1) + (i3 * o1) + (i4 * o1) + (i5 * o1) +(i3 * o2) + (i4 * o2) + (i5 * o2) +(i4 * o3) + (i5 * o3) + (i5 * o4);
			var e2 = (i0 * o0) + (i1 * o1) + (i2 * o2) + (i3 * o3) + (i4 * o4) + (i5 * o5);

			var e3 = (i0 * o1) + (i0 * o2) + (i0 * o3) + (i0 * o4) + (i0 * o5) + (i1 * o2) + (i1 * o3) + (i1 * o4) + (i1 * o5) + (i2 * o3) + (i2 * o4) + (i2 * o5) + (i3 * o4) + (i3 * o5) + (i4 * o5);
			var e4 = (i2 * o0) + (i3 * o0) + (i4 * o0) + (i5 * o0) + (i3 * o1) + (i4 * o1) + (i5 * o1) + (i4 * o2) + (i5 * o2) + (i5 * o3);
			var e5 = (i0 * o2) + (i0 * o3) + (i0 * o4) + (i0 * o5) + (i1 * o3) + (i1 * o4) + (i1 * o5) + (i2 * o4) + (i2 * o5) + (i3 * o5);
 
			document.getElementById('e1').innerHTML = e1;
			document.getElementById('e2').innerHTML = e2;
			document.getElementById('e3').innerHTML = e3;
			document.getElementById('e4').innerHTML = e4;
			document.getElementById('e5').innerHTML = e5;
		}

Тут в вар записывается валуе с инпута:
var i0 = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[0].getElementsByTagName( 'input' )[1].value || 0;

Но иногда инпут отсутствует и в вар нужно записать 0 , через || не работает.
Подскажите пожалуйста как можно решить проблему?
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@hufawoso
var input = document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[0].getElementsByTagName( 'input' )[1];
var i0 = input ? input.value : 0;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Alecxandrys
Сравнение с null коротким if. Если да, то 0 иначе само значение.
var i0=document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[0].getElementsByTagName( 'input' )[1].value=== null ? 0 : document.getElementById( 'output' ).getElementsByClassName( 'cmline' )[0].getElementsByTagName( 'input' )[1].value;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽