2012-03-05 4 views
0

jqueryを使用してリモートWebページを特定の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> 

URL:あなたは(つまり、あなたが上記の私たちに示されているHTMLがsearchresults.aspある)同じページをロードする場合http://tinyurl.com/7zml6yn

+0

これはトラブルシューティングのためのコードです。おそらく、エラーの原因とならないコードを削除することによって問題を絞り込むことができます。エラーがなくなるまでトリミングとテストを続けて、削除した最後のものを元に戻してください。 –

+0

は "新しいオプション()"有効なjavascript/jqueryですか? – jbabey

+0

補足として、あなたの 'cnt'は' .each'関数の最初の引数がインデックスも提供しているので必要ではありません。 – pimvdb

答えて

0

、その後、あなたはときにページを解析し、スクリプトを実行しようとしていますテストを再度呼び出すhtmlをロードしてください。