使用JavaScript双符号技术计算百分比时遇语法错误求助
问题分析与解决:JavaScript语法错误及DOM方法误用
嘿,我发现你的代码里有两个关键问题导致了语法错误和功能异常,咱们一步步来解决:
1. 全角减号触发语法错误
你计算EFG的代码行里,使用的是中文全角减号“–”,但JavaScript只能识别英文半角减号“-”。这就是该行报无效语法的直接原因,把所有全角减号替换成半角形式就能解决这个语法问题。
2. DOM方法调用拼写与使用错误
代码里的getElementByName是拼写错误,正确的方法名是getElementsByName——注意末尾的s。而且这个方法返回的是一个元素集合(NodeList),不是单个元素,所以你需要通过索引[0]获取集合中的第一个元素,再读取它的value属性,否则会因为尝试访问不存在的value属性而报错。
修正后的完整代码
<script type="text/javascript"> function getPercentage(){ var grade = ""; //declare a variable for grade var result=""; //declare a variable for result //read the marks var Response_B4 = document.getElementsByName('Response_B4')[0].value; var Response_C4 = document.getElementsByName('Response_C4')[0].value; var Response_D4 = document.getElementsByName('Response_D4')[0].value; var Response_E41 = document.getElementsByName('Response_E41')[0].value; var Response_E43 = document.getElementsByName('Response_E43')[0].value; var Response_E44 = document.getElementsByName('Response_E44')[0].value; //calculate the total marks (using double notation technique) var BCD = Response_B4 - (- Response_C4) - (- Response_D4); var EFG = Response_E41 - (- Response_E43) - (- Response_E44) ; //get the average marks var averageMarks = BCD / EFG; //display the results document.getElementById('overall').value = averageMarks; } //end of function getpercentage </script>
小提醒:如果需要确保这些表单元素存在,最好先做非空判断,避免因为元素不存在导致额外报错哦~
内容的提问来源于stack exchange,提问作者user8114214
相关产品推荐
相关产品推荐

