最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript:FF/Chrome与IE动态加载元素的区别说明_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:18:59
文档

javascript:FF/Chrome与IE动态加载元素的区别说明_javascript技巧

javascript:FF/Chrome与IE动态加载元素的区别说明_javascript技巧: 代码如下: ff 与 ie 动态加载元素的区别 li{margin:0;padding:0;list-style:none} function add(){ var liTemplate = $(#template); liTemplate.find(input[name='awbpre']).val(999); liTe
推荐度:
导读javascript:FF/Chrome与IE动态加载元素的区别说明_javascript技巧: 代码如下: ff 与 ie 动态加载元素的区别 li{margin:0;padding:0;list-style:none} function add(){ var liTemplate = $(#template); liTemplate.find(input[name='awbpre']).val(999); liTe


代码如下:



ff 与 ie 动态加载元素的区别



function add(){
var liTemplate = $("#template");
liTemplate.find("input[name='awbpre']").val("999");
liTemplate.find("input[name='awbno']").val("12312311");
$("#box").append("
  • " + liTemplate.html() + "
  • ");
    }










    代码本意为:点击Add按钮时,动态向页面添加二个输入框,同时给二个新加的输入框赋值。IE 6,7,8,9(兼容模式)下运行正常,见下面的截图:

    但是在FF,Chrome,IE9(非兼容模式)下,就不对了:

    把add()方法改成
    代码如下:

    function add(){
    var liTemplate = $("#template");
    $("#box").append("

  • " + liTemplate.html() + "
  • ")
    var new_li = $("#box li:last");
    new_li.find("input[name='awbpre']").val("999");
    new_li.find("input[name='awbno']").val("12312311");
    }


    就对了,二者的区别在于:第一种是先做赋值处理,再添加到dom树中;第二种写法是先加到dom树中,再找出对应的处理赋值。我对于前端技术实属菜鸟,个人理解:第一种写法类似"按值传递",var liTemplate = $("#template");后,不管再对liTemplate里的元素做何处理,因为liTemplate尚未加入到dom树中,最终调用liTemplate.html()时,返回的html代码,还是最初处理前的html代码(有点按值传递,使用的是一个副本,不管怎么处理,不影响原值的意味);而第二种写法,先加入到dom树后,再从dom中查找到该元素时,这时相当于得到的对象的指针引用,对“指针”指向的对象做任何修改,都会直接影响对象本身(有点按"引用传递"的意味)

    文档

    javascript:FF/Chrome与IE动态加载元素的区别说明_javascript技巧

    javascript:FF/Chrome与IE动态加载元素的区别说明_javascript技巧: 代码如下: ff 与 ie 动态加载元素的区别 li{margin:0;padding:0;list-style:none} function add(){ var liTemplate = $(#template); liTemplate.find(input[name='awbpre']).val(999); liTe
    推荐度:
    标签: 动态 IE 的区别
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top