Javascript 将JQuery应用于插入的克隆节点

Javascript 将JQuery应用于插入的克隆节点,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我正在尝试应用于一个节点,它适用于所有预先创建的节点,但当我使用克隆插入新节点时,我似乎无法应用它 下面是我创建新节点的函数 function addActivity() { var what=["spacer","mWith","mType","mDate","mWhere"]; var newActivity; for(i=what.length;i>0;i--) { newActivity = document.getElementB

我正在尝试应用于一个节点,它适用于所有预先创建的节点,但当我使用克隆插入新节点时,我似乎无法应用它

下面是我创建新节点的函数

function addActivity()
{
    var what=["spacer","mWith","mType","mDate","mWhere"];
    var newActivity;
    for(i=what.length;i>0;i--)
    {

        newActivity = document.getElementById(what[i-1]).cloneNode(true);
        insertAfter(document.getElementById("mWhere"),newActivity); 
    }

}
编辑:和我的insertAfter函数

function insertAfter(referenceNode, newNode) 
{
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
还有我正在尝试克隆的HTML

            <tr  id="mDate">
                <td>Activity Time: </td><td><input  class="dateTimeField" id="actTime" type="text" name="meetingDate[]" /></td>
            </tr>
但似乎不会影响新节点

甚至试过

onfocus="$(this).datetimepicker();"
运气不好,有什么想法吗?

想出来了。 显然,在应用datepicker之前,需要从节点中剥离ID和类

我添加了以下内容

        if(what[i-1]=="mDate")
        {
            $(newActivity).find('input').removeAttr('id');                  
            $(newActivity).find('input').removeAttr('class');                   
            $(newActivity).find('input').datetimepicker();
        }
之后


什么是
insertAfter()
函数?您的意思是在那里使用jQuery方法吗?另外,如果克隆了一个id为的节点,则需要在克隆后更改id以使其再次唯一。让我添加,这只是我写的一个在节点后添加的函数。如果没有唯一的ID,JQuery的类应用程序会不能工作吗?如果您试图通过ID查找对象,那么您只需要一个唯一的ID,该ID位于此
文档中。getElementById(“mWhere”)
和此
文档中。getElementById(what[I-1])
。如果要通过类、标记或其他方法查找对象,则不需要唯一的id。好的,插入很好,我会在找到的第一个之后追加,这很完美。它的datepicker仅应用于加载页面时存在的节点,我无法让克隆的节点使用datepicker。也许datepicker代码会将类添加到节点,当您克隆节点并克隆这些类时,datePicker注册代码可以看到已经存在的类,因此它认为不必做任何事情来连接它。当你移除这些类时,它看起来像一个新的对象,所以它做了它自己的事情。
        if(what[i-1]=="mDate")
        {
            $(newActivity).find('input').removeAttr('id');                  
            $(newActivity).find('input').removeAttr('class');                   
            $(newActivity).find('input').datetimepicker();
        }
   newActivity = document.getElementById(what[i-1]).cloneNode(true);