javascript - 为什么我的 javascript 会抛出函数未定义错误?

标签 javascript arrays scripting frontend

刚开始学JS。

我有一个按钮,它调用一个函数,该函数应该循环遍历数组并显示每个项目,但事实并非如此。它说:

showWorthSum() 函数未定义。

   function addWorth()
    { 


        var table1= document.getElementById("tableNetWorths");

        var rowCount1= table1.rows.length;

        var row1= table1.insertRow(rowCount1);


        var arr= [];


       for(count = 0; count < rowCount1; count++)
       {    
            arr.push(table1.rows[count].cells[1].innerHTML);          
       }


       arr.shift();
       return arr;

    } 

    function showWorthSum()
    {
        var returnedArr= [];

        returnedArr.push(addWorth());

        var totalWorth= 0;

        var arrCount= 10 ;

        for(int count = 0; count < arrCount; count++)
        {    
             //totalWorth= totalWorth+ returnedArr[count]; 

            document.write(returnedArr[count]);
            //debugger;
        }

        //return totalWorth;
    }

按钮:

   <button class="btn btn-primary" onclick="document.write(showWorthSum())" type="button">Show Sum</button>

是的,我已经处理了脚本标签等,只是为了发布而删除了这些标签。

更新:(完整代码)

<!DOCTYPE html>
<html>
<head>
<link href="css/basic.css" rel="stylesheet">
<link href="css/bootstrap.min.css" rel="stylesheet">

<script>
    function alterTable()
    { 

        //Textboxes code

        var tBoxCompany= document.getElementById("txtboxCompany");
        var tBoxAmount= document.getElementById("txtboxAmount");



        //table code

        var table= document.getElementById("tableNetWorths");

        var rowCount= table.rows.length;

        var row= table.insertRow(rowCount);

        var Cell1= row.insertCell(0);
        var Cell2= row.insertCell(1);

        Cell1.innerHTML= tBoxCompany.value;
        Cell2.innerHTML= tBoxAmount.value;

    }    

    function addWorth()
    { 


        var table1= document.getElementById("tableNetWorths");

        var rowCount1= table1.rows.length;

        var row1= table1.insertRow(rowCount1);


        var arr= [];


       for(count = 0; count < rowCount1; count++)
       {    
            arr.push(table1.rows[count].cells[1].innerHTML);          
       }


       arr.shift();
       return arr;

    } 

    function showWorthSum()
    {
        var returnedArr= [];

        returnedArr.push(addWorth());

        var totalWorth= 0;

        var arrCount= 10 ;

        for(int count = 0; count < arrCount; count++)
        {    
             //totalWorth= totalWorth+ returnedArr[count]; 

            document.write(returnedArr[count]);
            //debugger;
        }

        //return totalWorth;
    }

</script>

</head>
<body>
<div class="container-fluid">
<div class="row">
 <div class="col-md-12">

<table id="tableNetWorths">
<tr>
<th>Company</th>
<th>Net Worth ($)</th>

</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>100</td>

</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>200</td>

</tr>
<tr>
<td>Ernst Handel</td>
<td>344</td>

</tr>
<tr>
<td>Island Trading</td>
<td>22</td>

</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>122</td>

</tr>
<tr>
<td>Magazzini Alimentari Riuniti</td>
<td>99</td>

</tr>
</table>

</div>
</div>

<div class="row">
   <br>
   <div class="col-md-3">
       <input type="text" id="txtboxCompany" class="form-control"/>
   </div>
   <div class="col-md-3">
       <input type="text" id="txtboxAmount" class="form-control"/>
   </div>
   <div class="col-md-3">        
        <button class="btn btn-primary" onclick="alterTable()" type="button">Add Rows</button>
   </div>
    <div class="col-md-3">        
        <button class="btn btn-primary" onclick="document.write(showWorthSum())" type="button">Show Sum</button>
   </div>
</div>



</div>
<script src="js/bootstrap.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</body>
</html>

更新:(ShowWorthSum函数已修改,仍然不起作用)

 function showWorthSum()
    {
        var returnedArr= [];

        returnedArr.push(addWorth());

        var totalWorth= 0;

        var arrCount= 10 ;

        for(count = 0; count < arrCount; count++)
        {    
             totalWorth= totalWorth+ returnedArr[count]; 

        }

        return totalWorth;
    }

最佳答案

问题是您没有定义变量计数。使用这个:

for(var count = 0; count < arrCount; count++){ ...

对于 JS,无论你的 var 是字符串还是 int,你总是使用 var 声明你的变量

关于javascript - 为什么我的 javascript 会抛出函数未定义错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44435032/

相关文章:

javascript - 如何给两个交替的背景图像?

javascript - 使用 jquery 延迟对象链接多个 ajax 调用

php - 如何使用 PHP 根据该值将具有匹配列值的 MySQL 查询结果放入关联数组?

linux - 从命令行计算文件校验和

linux - 用于查找无主文件的 Perl 脚本未找到任何内容

javascript - 使用 jQuery 或独立插件显示 HTML 的好方法?

javascript - React.Children 与非元素子级

c - 初始化结构的二维数组,所有值都归零

javascript - Nunjucks:在 for 循环中从数组中选择特定项目

bash - 我如何编写一个小的 Bash shell 脚本来每 5 秒重复一次操作?