克隆并追加以关闭单元格中的td元素

时间:2019-01-09 19:20:01

标签: jquery

我有一堆表格单元格。在特定的单元格中,我想克隆并添加一个下拉列表。我该怎么做呢?这是我尝试过的方法,但是不起作用。我正在尝试克隆一个下拉菜单并更改多个属性,然后将其添加到找到脚本的现有单元格中。

<td>
<script>
var newDD = $('#aud1-clone').clone().attr({'id':'aud1','data-acID':'9857','data-pos':'1','name':'aud1'});
$(this).closest('td').appendTo(newDD);
</script>    
</td>

<select id="aud1-clone">
    <option value="0" selected>None</option>
    <option value="1">One</option>
</select>

1 个答案:

答案 0 :(得分:2)

我认为您没有正确使用appendTo。 您要告诉它追加到您刚刚创建的元素中,而该元素甚至还不是DOM的一部分。 如果将“ appendTo”更改为“ append”,则脚本可能会起作用

-编辑- 我认为您不理解“ appendTo”。 http://api.jquery.com/appendto/ 它的工作方式不同于“ .append()”。您应该在appendTo()中包含目标元素。 jQuery中的示例:

$( "<p>Test</p>" ).appendTo( ".inner" );

其中“ .inner”是要附加到的目标元素。在您的情况下,您要创建一个对象“ newDD”,然后选择一个“ td”并尝试将其附加到新对象上。但是,您也永远不会将新对象附加到DOM。 另外,不能像这样使用$(this)。它应引用dom元素,例如单击以触发脚本的按钮。您不仅可以参考脚本位置。 您应该执行类似$(“#aud1-clone”)。closest('td')的操作... 但是您应该确保在页面渲染后运行该脚本,也许使用$(document).ready()。