2013-02-16 35 views
3

我覺得我應該知道這一點,但由於我正坐在試圖從Javascript訪問html文件,我不知道從哪裏開始。我正在使用jQuery,所以我只想使用jQuery.ajax()?如何從Javascript中解析外部文件中的html

外部html是一個具有各種高級值的表,它們存儲在同一個域中,但存放在一個單獨的目錄中。當用戶以前在表格中輸入他們的出生年份並選擇他們是男性還是女性,還是吸菸者或不吸菸者時,我會根據他們的年齡返回特定值。

在下面的表格中,如果他們是21歲,男性,非吸菸者,我想要從#id21行的mns單元格中返回值。

<table id="premiumRateTable" cellpadding="0" cellspacing="0" border="0"> 
    <thead> 
     <tr> 
      <th id="age">Age Next Birthday</th> 
      <th id="cover">Default Cover</th> 
      <th id="mns">Male Non-smoker</th> 
      <th id="ms">Male Smoker</th> 
      <th id="fns">Female Non-smoker</th> 
      <th id="fs">Female Smoker</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr id="id20"> 
      <td headers="age">20</td> 
      <td headers="cover">$100,000</td> 
      <td headers="mns">$108.99</td> 
      <td headers="ms">$154.55</td> 
      <td headers="fns">$44.31</td> 
      <td headers="fs">$68.61</td> 
     </tr> 
     <tr id="id21"> 
      <td headers="age">21</td> 
      <td headers="cover">$150,000</td> 
      <td headers="mns">$160.81</td> 
      <td headers="ms">$229.15</td> 
      <td headers="fns">$58.16</td> 
      <td headers="fs">$77.48</td> 
     </tr> 
     <tr id="id22"> 
      <td headers="age">22</td> 
      <td headers="cover">$150,000</td> 
      <td headers="mns">$139.37</td> 
      <td headers="ms">$199.167</td> 
      <td headers="fns">$58.28</td> 
      <td headers="fs">$72.89</td> 
     </tr> 
     <tr id="id23"> 
      <td headers="age">23</td> 
      <td headers="cover">$150,000</td> 
      <td headers="mns">$128.64</td> 
      <td headers="ms">$183.59</td> 
      <td headers="fns">$56.28</td> 
      <td headers="fs">$72.89</td> 
     </tr> 
     <tr id="id24"> 
      <td headers="age">24</td> 
      <td headers="cover">$150,000</td> 
      <td headers="mns">$121.94</td> 
      <td headers="ms">$172.87</td> 
      <td headers="fns">$58.29</td> 
      <td headers="fs">$79.90</td> 
     </tr> 
     <tr id="id25"> 
      <td headers="age">25</td> 
      <td headers="cover">$150,000</td> 
      <td headers="mns">$112.56</td> 
      <td headers="ms">$158.13</td> 
      <td headers="fns">$61.11</td> 
      <td headers="fs">$84.91</td> 
     </tr> 

    </tbody> 
</table>  
+2

你想對文件做什麼 – 2013-02-16 04:09:01

+0

你需要什麼樣的容量來解析它?您可以使用任何ajax方法在同一個域上從該請求獲取原始發射。 – 2013-02-16 04:10:15

+0

編輯上面的問題 – timmackay 2013-02-16 04:12:51

回答

3

裝入表一次($(document).ready())並將其添加到一個不可見的元件在所述主體的端部。

var dummyDiv = $("<div id='dummyDiv'/>").css("display","none"); 
dummyDiv.load("otherpage.html #id"+age); 
dummyDiv.css("display","none"); 
$("body").append(dummyDiv); 

然後,您可以從任何位置運行此代碼以獲取該表中的值。

var dummyDiv = $("#dummyDiv"); 
var valYouWant = "mns"; //example value to grab 
var value = dummyDiv.find('td[headers="'+valYouWant+'"]').text(); 
//do whatever you'd like with 'value' 
+0

我可以將jQuery.load()的結果存儲在一個變量中,然後根據JavaScript中遇到的一些條件僅顯示它的一部分嗎? – timmackay 2013-02-16 04:13:08

+0

根據您修改的問題,這似乎沒有做到您想要的。另外,如果您沒有理由將數據存儲爲除此函數以外的HTML表格,那麼將其存儲爲json可能更容易處理。 (再次,取決於你想用它做什麼)。我會編輯我的答案,以便更多地尋找你想要的東西。 – 2013-02-16 04:14:49

+0

@hyperdouche你可以得到這個文件的一部分,例如: '$(「body」).load(「index.html #content」);' – 2013-02-16 04:15:28

相關問題