2012-03-05 101 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,這將再次調用測試等...