之前在parser網頁內的特定table時,總是撰寫了一堆code,先針對table,再針對tr的部分,再
來是td的欄位,如此一來需撰寫兩層迴圈來跑。而現在雖然可以透過map function,不過如果
要先找到特定table的話,可以先使用filter function來找到這個table的object。
下面有一個例子如下:
如果我們要針對table內的table擷取其內td的資料,此時我們可以透過先針對body內所有的
table做filter,並且針對filter做一些過濾的設定,如那個table的width = 300,因此針對此一特
性,當找到該table時,回傳該table的object。
得到的結果如下:
來是td的欄位,如此一來需撰寫兩層迴圈來跑。而現在雖然可以透過map function,不過如果
要先找到特定table的話,可以先使用filter function來找到這個table的object。
下面有一個例子如下:
<table border=1 width="200">
<tr data="1-1">
<td>1</td>
<td>2</td>
<td>
<table border=1 width="300">
<tr data="1-1-1">
<td>13</td>
<td>14</td>
<td>15</td>
</tr>
<tr data="1-1-2">
<td>16</td>
<td>17</td>
<td>18</td>
</tr>
</table>
</td>
</tr>
<tr data="1-2">
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
如果我們要針對table內的table擷取其內td的資料,此時我們可以透過先針對body內所有的
table做filter,並且針對filter做一些過濾的設定,如那個table的width = 300,因此針對此一特
性,當找到該table時,回傳該table的object。
var tdtext = new Array();
var selectedobj = $('table').filter(function(){
if($(this).attr('width') == 300){
return $(this);
}
});
var tableData = selectedobj.map(function(i, e){
tdtext = new Array();
$(e).find('td').each(function(){
tdtext.push($(this).text());
});
return tdtext;
}).get();
console.log(tableData);
當取得了該table的object之後,就可以使用map function與find來取出其內td所有的值!最後得到的結果如下:
["13", "14", "15", "16", "17", "18"]
留言
張貼留言