2012-03-05 105 views
0

我正在尝试使用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

+0

这是很多代码我们排除故障。也许你可以通过删除任何不会导致错误的代码来缩小问题的范围。只要保持修整和测试,直到错误不再存在,然后放回最后一次删除的东西。 – 2012-03-05 14:26:11

+0

是“新选项()”有效的JavaScript/jQuery的? – jbabey 2012-03-05 14:26:55

+0

作为一个方面说明 - 你的'cnt'不是必须的,因为'.each'函数中的第一个参数也提供索引。 – pimvdb 2012-03-05 14:26:57

回答

0

如果要加载在同一页(即HTML你对我们上面是searchresults.asp),那么你要解析页面,你在运行脚本加载的HTML,这将再次调用测试等...