转换并将一组div值添加到整数中
转换并将一组div值添加到整数中
我在页面上有各种评分值;我想要得到平均评分,然而,我认为会起作用的方法目前还没有。
1 5 3 2
我想要对这些评分求和并找出平均值。
function overallRating() { var items = document.getElementsByClassName("ratings"); var itemCount = items.length; var sum= 0; for(var i = 0; i < itemCount; i++) { sum += parseInt(items[i].value); console.log(sum) } }
控制台输出的sum
返回NaN
。
有人能告诉我我哪里出错了吗?
问题的出现原因是在JavaScript代码中,使用了错误的属性来获取div元素的值。应该使用innerText属性来获取div元素的文本内容,而不是value属性。此外,在使用前应该先去除文本内容的空格。
解决方法是将代码中的.items[i].value改为.items[i].innerText,并在后面加上.trim()以去除空格。修改后的代码如下:
sum += parseInt(items[i].innerText.trim());
这样就可以将div元素的值转换为整数并将其添加到sum变量中。
下面是完整的修改后的代码:
function overallRating() { var items = document.getElementsByClassName("ratings"); var itemCount = items.length; var sum = 0; for (var i = 0; i < itemCount; i++) { sum += parseInt(items[i].innerText.trim()); console.log(sum) } }
同时,HTML代码中的元素应该调用overallRating函数,而不是传递this参数。修改后的代码如下:
这样就可以正确地将一组div元素的值转换为整数并将它们相加。
问题:将一组
元素的值转换为整数并求和的方法。
原因:原始的
元素的值是字符串形式,需要将其转换为整数进行求和。
解决方法:使用textContent
方法来获取
元素的文本内容,然后使用
parseInt()
方法将文本内容转换为整数,并使用累加器sum
将所有元素的值相加。
代码示例:
var items = document.getElementsByTagName("div"); var sum = 0; for (var i = 0; i < items.length; i++) { sum += parseInt(items[i].textContent); } function getAverageValue() { var itemCount = items.length; return sum / itemCount; }
以上代码将会将一组
元素的值转换为整数并求和,然后通过
getAverageValue()
函数返回求平均值。