2017-08-08 142 views
1

我想創建一個嵌套的表,這將通過添加一行後用戶點擊一行,然後在新行內添加一個表中顯示的項目的額外的細節。嵌套的類型的一個示例如下所示:嵌套的HTML表標籤剝離

<table> 
 
    <tr id="1"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    <tr id="2"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table> 
 

 
<table> 
 
    <tr id="1"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    <tr id="1a"> 
 
    <table> 
 
     <tr> 
 
     <td></td> 
 
     <td></td> 
 
     </tr> 
 
    </table> 
 
    </tr> 
 
    <tr id="2"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table>

Jquery的拾取用戶點擊並詢問PHP爲詳細,它然後追加如下:

$.ajax({ 
 
    type: "POST", 
 
    url: "php/getDetail.php", 
 
    data: { 
 
     id: data_id 
 
    }, 
 
    cache: false, 
 
    success: function(data) { 
 
     $('#' + row_id).after(data); 
 
    } 
 
});

這將行添加到原始表,但它省略了封閉標籤嵌套表和你結束了這一點:

<table> 
 
    <tr id="1"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    <tr id="2"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table> 
 

 
<table> 
 
    <tr id="1"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    <tr id="1a"> 
 
     <td></td> 
 
     <td></td> 
 
    </tr> 
 
    <tr id="2"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table>

看來,沿線某處,Jquery的電話和瀏覽器的渲染之間,嵌套表標籤被剝離出來。有沒有其他人遇到過這個?

+3

的問題是,因爲你的HTML是無效的。嵌套的'

'需要位於'​​'內,而不是''。瀏覽器的HTML渲染器正在移動代碼中的表位置 以使其有效。以打字錯誤結尾 –

+1

您也有多個使用'id =「1」'的元素,這也是無效的。 'id'屬性*必須在頁面內唯一 –

+0

感謝解決方案@RoryMcCrossan。這兩個表格是在點擊之前和之後進行的,因此只有一個ID爲「1」。 – a1pilot13

回答

0

嵌套table不能是tr直接孩子,你可以添加它tr標籤內:

<table> 
    <tr id="1"> 
    <td></td> 
    <td></td> 
    </tr> 
    <tr id="1a"> 
    <td> 
     <table> 
      <tr> 
       <td></td> 
       <td></td> 
      </tr> 
     </table> 
    </td> 
    </tr> 
    <tr id="2"> 
    <td></td> 
    <td></td> 
    </tr> 
</table> 

注:id屬性應該是相同的文檔中是唯一,嘗試使用常見的類。

希望這會有所幫助。

0

Credit to Rory McCrossan。以下是正確的函數修改HTML:

<table> 
 
    <tr id="1"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
    <tr id="1a"> 
 
    <td colspan=2> 
 
     <table> 
 
     <tr> 
 
      <td></td> 
 
      <td></td> 
 
     </tr> 
 
     </table> 
 
    </td> 
 
    </tr> 
 
    <tr id="2"> 
 
    <td></td> 
 
    <td></td> 
 
    </tr> 
 
</table>