for循环后Javascript没有发出警报

时间:2014-07-15 04:51:59

标签: javascript jquery function alert

我有一个javascript函数,其中包含foor循环。一旦循环存在,它就不显示警报,任何人都可以建议可能出错的地方。

代码在

之下
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<?PHP Include('Includes\common\header_items.php');

session_start();

?>
</head>
<body>

 <form name="step2" method="POST">
<div id="qwe">
<table width="500px" id="myTable" name="myTable">
                            <thead>
                                <tr>    
                                    <td >Brawing / Document No.</th>
                                    <td>Revision No.</th>
                                    <td>Description     (Optional)</th>                                     
                                </tr>
                            </thead>
                            <tbody>
                            <tr>    
                                    <td width="40%"><input type="text" id="553" name="2" /></th>
                                    <td width="10%"><input type="text" id="revID553" name="3" /></th>
                                    <td width="45%"><input type="text" id="descpID553" name="4" /></th>                                     
                                </tr>
                            <tr>                                        
                                    <td width="40%"><input type="text" id="4" name="21" /></th>
                                    <td width="10%"><input type="text" id="15" name="31" /></th>
                                    <td width="45%"><input type="text" id="6" name="41" /></th>                                     
                            </tr>
                            <tr>    
                                    <td width="40%"><input type="text" id="556" name="2" /></th>
                                    <td width="10%"><input type="text" id="revID556" name="3" /></th>
                                    <td width="45%"><input type="text" id="descpID556" name="4" /></th>                                     
                            </tr>
                            </tbody>
                        </table>

<input type="submit" onclick='Javascript: return testFunc();'>
</div>
</form>

<script language="javascript">
var table_row = [];

function testFunc(){

table_row.length = 0;
var count = 0;


var testing = document.getElementById("myTable").getElementsByTagName("input");

for (i=0; i<=testing.length; i++){
var data = document.getElementById("myTable").getElementsByTagName("input")[i].id;

            if(data.substring(0,2) == "55")
            {

            var value_doc = document.getElementById("myTable").getElementsByTagName("input")[i].value;

            var value_rev = 'revID'+data;               
            var rev = document.getElementById(value_rev).value;

            var value_descp = 'descpID'+data;
            var descp_data = document.getElementById(value_descp).value;


            //code to add into array
            table_row[count] = [data,rev,descp_data];

            count ++;

            }

        }

 alert("I am in the end");

   </script>

   </body>
  </html>

我无法弄清楚为什么它没有显示最后一个警报。有什么建议?最后一次警报不起作用。

3 个答案:

答案 0 :(得分:1)

你好你的代码对我来说很好。

像这样编写你的函数。

function testFunc(){
    alert("I am in test function");
    for (i=0; i<=5; i++){
     //code to add values in array
     // it displays the values added in array correctly
        alert('call');
    }
   alert("Function is Ending"); //this is not displayed once loop runs 5 times.
   return true;
}

现在调用你的函数加载。

$(document).ready(function () {
     testFunc();
 });

Fiddle Demo

答案 1 :(得分:0)

你没有打电话给你的功能:

JSFiddle

检查以下代码:

function testFunc(){
    alert("I am in test function");
    for (i=0; i<=5; i++){
     //code to add values in array
     // it displays the values added in array correctly
    }
   alert("Function is Ending"); //this is not displayed once loop runs 5 times.
   return true;
}

testFunc(); // calling function

答案 2 :(得分:0)

主要问题是额外的循环迭代 我还重写了一点代码以避免许多document.getElementById("myTable").getElementsByTagName("input"),因为它会在每次出现时导致搜索DOM。

<script language="javascript">
var table_row = [];

function testFunc() {

    table_row.length = 0;
    var count = 0;

    var testing = document.getElementById("myTable").getElementsByTagName("input");

    for (i = 0; i < testing.length; i++) {
        var data = testing[i].id;
        if (data.substring(0,2) == "55") {
            var value_doc = testing[i].value;

            var value_rev = 'revID' + data;               
            var rev = document.getElementById(value_rev).value;

            var value_descp = 'descpID' + data;
            var descp_data = document.getElementById(value_descp).value;

            //code to add into array
            table_row[count] = [data, rev, descp_data];

            count ++;
        }
    }
    alert("I am in the end");
}
</script>