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);