未捕获的RangeError:调用函数时,jsp中超出了最大调用堆栈大小

时间:2014-08-02 08:16:33

标签: javascript jsp

我有index.jsp页面。我正在尝试按下按钮点击功能,这将计算价格列的总和。但是我在运行后得到以下错误

未捕获的RangeError:index.jsp中的最大调用堆栈大小

index.jsp就在这里

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Online Shopping</title>
    <style>

        tr, th, td{
            padding:5px;border:1px solid black;border-collapse:collapse;
        }
    </style>
    <script type="text/javascript" >
    function onclick(){alert("in onclick") 
        var result=0;
        var tableElem = document.getElementById(tableId);          
        var tableBody = tableElem.getElementsByTagName("tbody").item(0);
        var i;
        var howManyRows = tableBody.rows.length;



        for (i=0; i<(howManyRows); i++)
        {
            var thisTrElem = tableBody.rows[i];
            var thisTdElem = thisTrElem.cells[1];           
            var thisTextNode = thisTdElem.childNodes.item(0);

            var thisNumber = parseFloat(thisTextNode.data);

            if (!isNaN(thisNumber))
                result += thisNumber;
        } // end for

    alert(result)
    }   
</script>
</head>
<body>

    <h1 align="center">My Shopping</h1>

    <table align="center" id="tableId" >
        <thead >
        <th>Book Name</th>
        <th> Price(in Rs.)</th>
        <th>Select</th>
    </thead>
    <tbody>
        <tr align="center" >
            <td>
                Core java 
            </td>
            <td>
                200
            </td>
            <td>
                <input type="checkbox" name="order">
            </td>
        </tr>
        <tr align="center">
            <td>
                Advance java 
            </td>
            <td>
                300
            </td>
            <td>
                <input type="checkbox" name="order">
            </td>
        </tr>
        <tr align="center">
            <td>
                Rich dad poor dad 
            </td>
            <td>
                210
            </td>
            <td>
                <input type="checkbox" name="order">
            </td>
        </tr>

    </tbody>
</table>
<br/>
<div align="center">
    <button style="background-color: yellow" onclick="onclick()">Add to cart</button>
</div>

请帮帮我

由于

1 个答案:

答案 0 :(得分:0)

您正在呼叫onclick = onclick()。我认为这是一个永远不会结束的递归。

将您的函数onclick重命名为addToCart

<button style="background-color: yellow" onclick="addToCart()">Add to cart</button>

在你所说的第二行功能中

document.getElementById(tableId); //it will return null because tableId is not defined wrap it in quotes

使用

document.getElementById('tableId'); //