Неперехваченная ошибка типа не может прочитать свойство null (чтение «значения») в javascript

#javascript #html #onclick #onchange

#язык JavaScript #HTML #onclick #по обмену

Вопрос:

Я получаю ошибку «Неперехваченная ошибка типа не может прочитать свойство null (чтение «значение»)» Я постоянно ищу решение и не знаю, что не так в коде, вы можете мне помочь?

Мой код

 function test(){  for(var i=0; i lt; 40; i  ) { var name1.value = document.getElementsByClassName('test1')[i]; var address1.value = document.getElementsByClassName('test2')[i];  if( name1.value == "test4"){ address1.value = "test5"; } else if (name1.value == "test6"){ address1.value = "test7"; } else if (name1.value == "test8"){ address1.value = "test9"; } } } 
 lt; div class="form grup test1"gt; lt; labe for="power-full.names"gt; Names fulllt;/lablegt; lt; input name="power-full.names" list="power-full.names" type="text" class="form grup test1" onclick="test"(this)"gt; lt;datalist type"text" id="power-full.names"gt; lt;option value="test4"gt; lt;option value="test6"gt; lt;option value="test8"gt; lt;/datalistgt; lt;/divgt;   lt; div class="form grup test2"gt; lt; labe for="power-full.adress"gt; Adress fulllt;/lablegt; lt; input name="power-full.adress" list="power-full.adress" type="text" class="form grup test2" onclick="test"(this)"gt; lt;datalist type"text" id="power-full.adress"gt; lt;option value="test5"gt; lt;option value="test7"gt; lt;option value="test9"gt; lt;/datalistgt; lt;/divgt; 

Комментарии:

1. у вас, вероятно, нет 40 имен, как в цикле for, о котором вы говорите, получите это 40 раз

2. У меня 40 имен, это пример кода.

Ответ №1:

Вы забыли добавить классы, поэтому document.getElementsByClassName(‘test1’)[i] не возвращает ни одного. И javascript не может прочитать значение свойства None. Чинить —

 lt;option class="test1" value="test4"gt;  

Комментарии:

1. Onclick работает только проблема в том, что консоль показывает ошибку после нажатия кнопки «Неучтенная ошибка типа Не может прочитать свойство неопределенное (чтение «значение») в test.js в HTMLInpuntElement.onclick (индекс.html.1)

Ответ №2:

во-первых: возможно, вам следует использовать onchange событие для привязки input.test1 .

второе: измените значение input.test2

 function test1(ele){  var address1 = document.getElementById('test2');   if( ele.value == "test4"){  address1.value = "test5";  } else if (ele.value == "test6"){  address1.value = "test7";  } else if (ele.value == "test8"){  address1.value = "test9";  } } 
 lt;div class="form grup test1"gt;  lt;lable for="power-full.names"gt; Names fulllt;/lablegt;  lt;input name="power-full.names" list="power-full.names" type="text"  class="form grup test1" onchange="test1(this)"gt;  lt;datalist type"text" id="power-full.names"gt;  lt;option value="test4"gt;  lt;option value="test6"gt;  lt;option value="test8"gt;  lt;/datalistgt; lt;/divgt;   lt;div class="form grup test2"gt;  lt;lable for="power-full.adress"gt; Adress fulllt;/lablegt;  lt;input id="test2" name="power-full.adress" list="power-full.adress" type="text"  class="form grup test2"gt;  lt;datalist type"text" id="power-full.adress"gt;  lt;option value="test5"gt;  lt;option value="test7"gt;  lt;option value="test9"gt;  lt;/datalistgt; lt;/divgt; 

Комментарии:

1. Большое вам спасибо за ваш ответ. Проблема в том, что я должен использовать «getElementsByClassName», потому что мой родительский идентификатор меняется. И когда я использую getElementsByClassName, функция работает, показывает только ошибку «Неучтенная ошибка типа Не может прочитать свойство неопределенное (чтение «значение»)»