我從一個遠程主機,下面的jQuery代碼jQuery的轉換HTML表到XML
var loadUrl = "URL.html"; $("#result") .html(ajax_load) .load(loadUrl + " table.schedule");
這給了我下面的HTML
<table class="schedule"> <tr> <th>Name</th> <th>column A</th> <th>column B</th> </tr> <tr> <td>1</td> <td>A1</td> <td>B1</td> </tr> <tr> <tr> <td>2</td> <td>A2</td> <td>B2</td> </tr> </table> <table class="schedule"> <tr> <th>Name</th> <th>column C</th> <th>column D</th> </tr> <tr> <td>3</td> <td>C1</td> <td>D1</td> </tr> <tr> <tr> <td>4</td> <td>C2</td> <td>D2</td> </tr> </table>
的TR & TDS的參數可以改變檢索HTML ,我想檢索列A,B,C,D的數據,並將HTML「轉換」爲列表格式,如下面的XML。
<schedule name="1"> <data>A1</data> <data>A2</data> </schedule> <schedule name="2"> <data>B1</data> <data>B2</data> </schedule> <schedule name="3"> <data>C1</data> <data>C2</data> </schedule> <schedule name="4"> <data>D1</data> <data>D2</data> </schedule>
我曾嘗試下面的代碼,它爲我提供了第一列的數據,但它也串接全部來自這兩個表的陣成一個列表。
$("#load_get").click(function(){ var xml = "<schedule>"; $("#result") .find("tr").each(function() { xml += "<data>"; xml += $(this).find("td").eq(1).html() + "\n"; xml += "</data>"; }); xml += "</schedule>"; alert(xml); });
請幫助。
編輯
謝謝Polarblau,Federic &阿爾伯特您的答覆。他們幫助了很多人,抱歉改變了目標,但是如果我可以稍微修改場景。
這是相同的HTML,除了它在第一個TR中有一個標題,有兩個表並且第一列被忽略。
<table class="schedule"> <tr> <th>ignore</th> <th>Header1</th> <th>header2</th> </tr> <tr> <td>ignore</td> <td>A1</td> <td>B1</td> </tr> <tr> <td>ignore</td> <td>A2</td> <td>B2</td> </tr> </table> //second table
XML我希望有,需要抓住標題(TH),並使用它在TD循環設置名稱屬性,像這樣。
<schedule name="Header1"> <data>A1</data> <data>A2</data> </schedule> <schedule name="Header2"> <data>B1</data> <data>B2</data> </schedule> //second table xml
我試過不成功,修改你的解決方案來達到這個目的。
是因爲。 (1).html().... eq(1)會給你每行的第一個單元格 – Vivek