2012-06-07 177 views
1

我想將錶行追加到現有的表。.append()刪除添加的元素

這是我的表是如何構成的:

<div id="productListContainer"> 
    <table id="productListTable"> 
      <thead> 
       <tr> 
        <td> 
         # 
        </td> 
        <td> 
         Product Name 
        </td> 
        <td> 
         Price 
        </td> 
        <td> 
         Quantity 
        </td> 
       </tr> 
      </thead> 
      <tbody> 
      </tbody> 
     </table> 
</div> 

具有以下功能我想追加一個新錶行:

function(data) { 
       if (data.productAdded !== "undefined") { 
        $("#productListTable tr").append().html(data.productAdded); 
       } 
       } 

成功地追加一行。但是,如果我選擇觸發相同功能的其他項目,則添加的表格行將被新的表格覆蓋。

我在ajax調用中使用這個函數作爲成功消息。

'data'是一個JSON對象,它包含productAdded,它本身就是表格行作爲字符串。

+1

如果要添加新行,你應該叫'追加()''上$('#productListTable ')'而不是'$('#productListTable tr')' –

+0

請參閱Rocket的答案,您使用append()的方式並不理想 – Huangism

+1

data.productAdded包含的是什麼? –

回答

3

你想要做的是追加一行到我假設的表體。爲此,你需要做到這一點 -

$("#productListTable tbody").append(html_string); 

html_string需要包含所有必要的<tr><td>元素與你的表的標題匹配。

參考 -

2

調用.append()不帶參數,不附加任何東西,並返回原始的jQuery對象。所以,當您撥打.html()時,您將取代<tr>的內容。

它應該是:

$("#productListTable tr").append(data.productAdded); 

編輯:這將追加到<tr><thead>內。我假設你想追加到<tbody>

$("#productListTable tbody").append(data.productAdded); 

編輯2:當附加到一個表,你需要確保你有一個<tr><td>在你的字符串正確的號碼。

+0

這實際上在表格的標題「」後面附加了一行。我不相信這是OP正在嘗試做什麼... – Lix

+1

@Lix:我不知道OP在做什麼,但你說得對。 –