我如何从包含多个没有类或id的表的html解析标记内容?

时间:2017-01-12 06:49:47

标签: javascript html

以下是示例:

<table width="98%" border="0" cellpadding="7" cellspacing="1" style="border: 1px solid #9fc1d6;">
    <tbody>
        <tr>
            <td bgcolor="#F8F8F8">Rooms </td>
            <td bgcolor="#F8F8F8">4</td>
        </tr>
        <tr>
            <td bgcolor="#FDFDFD">Rest room </td>
            <td bgcolor="#FDFDFD">3</td>
        </tr>

    </tbody>
</table>


<table width="98%" border="0" cellpadding="7" cellspacing="1" style="border: 1px solid #9fc1d6">
    <tr>
        <th colspan="2" class="ch5">contact person </th>
    </tr>
    <tr>
        <td width="26%" bgcolor="#F8F8F8">Name</td>
        <td width="74%" bgcolor="#F8F8F8">Silvilia</td>
    </tr>
    <tr>
        <td bgcolor="#FDFDFD">Phone Number</td>
        <td bgcolor="#FDFDFD">0852-2223-44xx</td>
    </tr>

</table>

在这种情况下,我想解析房间的td标签内容(4)。所以这里是获取房间的td标签内容的示例代码,如果它只有一个表。

var row = $('table tr');
row.each(function(j,elem){
    if(j==1){
        var rooms= $(this).find('td:nth-child(2)').text();
        dataparse.rooms = rooms;
    }
});

有什么方法可以帮助解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果你不能添加类或id,没有方便的方法。 您的方法很好并且应该可以工作,但是您从第二行(休息室)获取数据,因为索引j应该从0开始,并且您正在进行比较j == 1。换句话说,您可以尝试使用xpath,或者可以检查上一个单元格的innerHTML(如果prev单元格的innerHTML.trim().toLowerCase()等于rooms