JQuery,添加行但对className没有影响

时间:2010-09-09 22:58:45

标签: jquery

我正在尝试使用clone()方法向现有表添加一行。它工作正常,我还想更改原始行中每个td下所有div元素的CSS类名。基本上我想让一些td元素可编辑。我已经通过添加“row.find(”td div“)...”尝试了这一点,正如您在代码中看到的那样,但此代码根本没有任何效果。有什么建议吗?

 $("#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');
});

2 个答案:

答案 0 :(得分:0)

选择器很可能出现问题。我会运行row.find("td div")并检查其lengthalert()会这样做),以确保您确实找到了所需的div。

答案 1 :(得分: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并针对它运行您的代码。如你所见,它有效。