无限循环错误

时间:2012-03-05 14:23:16

标签: javascript jquery

我正在尝试使用jquery将远程网页加载到特定的div标签,但页面进入无限循环。请告诉我一个关于那个的解决方案。以下是我用过的代码。

<div id="data" style="display:none"></div>  
         <div id="data1" style="display:none"></div>  
          <div id="data2" style="display:none"></div>  
<form name="frm" id="frm" method="post" action="">
        <select id="Make" name="Make" onchange="test1(this.value)">
        <option value="">Choose Make</option>
        </select>
        <select id="year" name="year" onchange="test2(this.value)">
        <option value="">Choose Year</option>
        </select>
        <select id="model" name="model" onchange="">
        <option value="">Choose Year</option>
        </select>
        </form>
<script type="text/javascript">
    function test()
    {
        $.get("/SearchResults.asp?Cat=1833", function (data)
         {
         //alert("test1");
                    $('#data').html(data);

         });
                getVa();

    }
    test();


    function test1(val) 
    {
        $.get(val, function (data) 
        {
                 //alert("test2");
                   $('#data1').html(data);
        });
                getVa();

    }


    function test2(val) 
    {
        $.get(val, function (data) 
        {
                // alert("test3");
                   $('#data2').html(data);
        });
                getVa();

    }

    function getVa()
    {
    var lnk =new Array();
    var cnt=0;
    var val=new Array
    $("a").each(function(index){
    if($(this).attr("class")=="subcategory_link")
    {


    //document.getElementsById("year").innerHTML="<option value="+$(this).attr("href")+">test</option>";
    lnk[cnt]=$(this).attr("href");
    cnt=cnt+1;
      //alert($(this).attr("href"));

    }
    });
    cnt=0;
    $("span").each(function(ind){
    if($(this).attr("class")=="subcategory_name")
    {
      val[cnt]=$(this).text();
      cnt=cnt+1;
    }
    });


    var select = document.getElementById("Make");
    var select1 = document.getElementById("year");
    var select2 = document.getElementById("model");


    if(select.options.length<=1)
    {

    for(i=0; i<lnk.length;i++)
    {
    select.options[select.options.length] = new Option(val[i], lnk[i]);
      //alert(lnk[i]);
      //alert(val[i]);
    }
    }
    else if(select1.options.length<=1)
    {
    select1.options[select1.options.length] = new Option(val[i], lnk[i]);
    }
    else if(select2.options.length<=1)
    {
    select2.options[select2.options.length] = new Option(val[i], lnk[i]);
    }

    }
    </script>

网址:http://tinyurl.com/7zml6yn

1 个答案:

答案 0 :(得分:0)

如果您正在加载相同的页面(即上面显示的html是searchresults.asp),那么您将解析页面并在加载html时运行脚本,这将再次调用test等。 ..