如何从Javascript中解析外部文件中的html

时间:2013-02-16 04:08:30

标签: javascript jquery ajax

我觉得我应该知道这一点,但是当我坐下来试图从我的Javascript访问一个html文件时,我真的不知道从哪里开始。我正在使用jQuery所以我只想使用jQuery.ajax()?

外部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>    

1 个答案:

答案 0 :(得分: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'