2010-09-09 11 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