2010-09-09 32 views
0

我想通過使用clone()方法向現有表添加一行。它工作正常,我也想改變原始行每個td下的所有div元素的CSS類名稱。基本上我想要編輯一些td元素。我已經通過添加「row.find(」td div「)...」來嘗試這個,就像你在代碼中看到的那樣,但是這個代碼根本沒有效果。有什麼建議麼?JQuery,添加行,但對className沒有影響

$("#create_blank_scenario").click(function(){ 
       var row = $('#sortable_offer_table tbody tr:first').clone(true); 

       row.find("td div").addClass("editable"); 

       row.insertBefore('#sortable_offer_table tbody tr:first'); 
}); 
+0

您能否提供您的標記樣本? – Ender 2010-09-09 23:30:22

回答

0

也許你的標記有問題,因爲你的代碼似乎對我來說工作得很好。下面是它的工作演示:http://jsfiddle.net/gkEbp/

我創造了一些假的html:

<table id="sortable_offer_table"> 
    <tr> 
     <td><div>My Text</div></td> 
     <td><div>My Other Text</div></td> 
     <td><div>My Final Text</div></td> 
    </tr> 
    <tr> 
     <td><div>My Text</div></td> 
     <td><div>My Other Text</div></td> 
     <td><div>My Final Text</div></td> 
    </tr> 
    <tr> 
     <td><div>My Text</div></td> 
     <td><div>My Other Text</div></td> 
     <td><div>My Final Text</div></td> 
    </tr> 
</table> 

<br/><br/> 

<button type="button" id="create_blank_scenario">Create Blank</button> 

新增CSS規則突出.editable跑到你的代碼反對。正如你所看到的,它是有效的。

+0

是的你是對的,標記和可編輯的CSS的問題。更正和工作正常 – jgg 2010-09-10 18:59:53

0

最有可能有選擇器有問題。我運行row.find("td div")並檢查它的lengthalert()會這樣做),以確保您確實找到了您想要的div。

+0

我剛剛這樣做,我得到正確的計數。 – jgg 2010-09-09 23:11:33

+0

在這種情況下,我不確定,但是我會嘗試添加類* *將行插入到DOM中。 – EMP 2010-09-09 23:25:12