2012-09-29 30 views
0

我有以下工作代碼。這將顯示一個下拉,並取來顯示一個HTML文件:JQuery/Javascript如何使用獲取解析HTML

$.getJSON('json/shares.json', function(data) { 
     var items = []; 

     $.each(data.Shares, function(key, val) { 
     items.push('<option id="' + val.shareID+ '">' + val.shareID+ '</option>'); 
     }); 

     $('<select/>', { 
     'id': 'shares', 
     html: items.join('') 
     }).appendTo('#shares'); 
    }); 
    </script> 

    <script type="text/javascript"> 

    $.get('lon_shares.html', function(data){ 
     $(data).appendTo('#shares'); 
    }); 

    </script> 

我需要修改這幾個額外的東西。

首先,我需要下拉選擇時自動提交。

然後我需要它來獲得與選擇相關的html文件,例如,如果他們選擇「FML」選項,它將獲得html文件「FML_shares.html」,如果他們選擇「GBP」,那麼它應該得到「 GBP_shares.html「,最後如果選擇沒有任何相關的html文件,那麼應該顯示錯誤,如」沒有這樣的文件「等。

只是爲了讓它更復雜一些, t想要整個文件。該文件在其中有一個表格,我想從表格的第一行獲取數據,用於前五列數據並單獨顯示這些數據。

感謝您的任何幫助,我一直在尋找解決方案一段時間沒有任何成功,我的JQuery/Javascript的知識是非常基本的! (我已經做了類似與PHP的東西過去,但在這裏,這不是一個選項)

+0

謝謝,但我不能讓任何一個工作,你能告訴我如何將它們添加到我現有的代碼,因爲我不擅長jQuery/JavaScript。只需要下拉菜單的autosubmit,然後獲取相關的htlm文件就可以了,現在我可以稍後再處理。謝謝。 – davidjwest

回答

0

那麼對於第一點,你可以只運行

$('#shares').on('change', function(){ 
    var val = $(this).val(); 
    //submit another ajax request with this value, and get the relevant page, then you'd just need to parse it for the appropriate content from that page. 
}); 

如果你想解析返回的頁面,只得到這部分我們需要知道標記結構。

0

好像你只是需要綁定到你正在創建的下拉列表中的.change事件來完成提交,你可以用.get進行檢索。你可以使用jQuery來解析html。它做得很好:

.appendTo('#shares') 
.change(function() { 
    $.get($(this).val() + '_shares.html) 
     .done(function (html) { 
     var $table = $(html).find("table tr:first td").slice(0,5); 
     }) 
     .fail(function() { /* no such file */ }); 
}); 

此代碼未經測試,但希望您可以按照示例進行操作。同時要小心GET緩存。