javascript和Chrome之间的区别:IE动态加载元素

复制代码代码如下所示:



FF与IE动态加载元素的区别


李{空白:0;填充:0;列表样式:无}


函数添加(){
无功litemplate = $(#模板);
LiTemplate.find(输入{名称= 'awbpre})。瓦迩(999);
LiTemplate.find(输入{名称= 'awbno})。瓦迩(12312311);
$(#箱)。追加(+ litemplate.html()+);
}





Awbpre:

Awbno:







该代码是为了增加两个输入框的页面动态时,点击添加按钮,并指定一个值的两个新增加的输入boxes.ie 6、7、8、9(兼容模式)运行正常,请看以下截图:

但在FF,Chrome,IE9(兼容模式),这是错误的:

将Add()方法更改为
复制代码代码如下所示:

函数添加(){
无功litemplate = $(#模板);
$(#箱)。追加(+ litemplate.html()+)
无功new_li = $(#箱里:最后的);
new_li.find(输入{名称= 'awbpre})。瓦迩(999);
new_li.find(输入{名称= 'awbno})。瓦迩(12312311);
}


是的,两者之间的区别是,第一个任务是首先分配任务,然后将其添加到DOM树中。第二种方法是将其添加到DOM树,然后找到相应的处理任务。我的前端技术是一个菜鸟,个人理解:首先是类似于传值,无功litemplate = $(#模板);,不管什么元素在litemplate治疗,因为litemplate尚未添加到DOM树,最后打电话给litemplate.html(),返回的HTML代码的初始加工前的HTML代码(是按值传递的,是一个副本,使用无论怎样治疗不影响平均原始价值);第二方面,第一次添加到DOM树,然后从DOM中找到的元素,那么指针相当于得到一个对象的引用。对对象指针的任何修改都将直接影响对象本身(单击引用)。