• clone data


    .clone( )

        <div class="demo"></div>
        <script src = "./jquery.js"></script>
        <script>
            $('.demo').clone().appendTo('body');//克隆 demo上的属性也会克隆过来(自定义属性也可)
    
        </script>
        <div class="demo" style="100px; height:100px;background-color:red"></div>
        <script src = "./jquery.js"></script>
        <script>
            $('.demo').click(function(){
                alert(0);
            });
            $('.demo').clone(true).appendTo('body');
            //事件在clone()里添加参数才能克隆 (并不是所有事件都能克隆)
            $('.demo').prop('data-log','1111')
            console.log( $('.demo').clone.prop('data-log','1111') )//prop里的信息克隆不出来(用data)
            //data jQuery dom 存信息存数据存状态 (data信息存在jQuery对象上,jQuery对象与dom对象有一定映射关系)
            //data 用法:
            $('.demo').data('data-duyi','cg')//值不会存在行间样式之中,但是可以取出来
            $('.demo').data({
                name:'li',
                age:15,
                sex:true
            });//可以传多个值  在控制台取值:$('.demo').data('name'),可以取出name值
            //age是15 取出的就是数字15  用attr取值都是字符串
    
    
        <style>
            .tpl{
                display:none;
            }
        </style>
    <body>
        <table class="stb">
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>班级</th>
            </tr>
            <tr class="tpl">
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </table>
        <script src="./jquery.js"></script>
        <script>
            //克隆使用的场景
            var studentArr = [
                {
                    name: 'li',
                    age: 18,
                    class: 3
                },
                {
                    name: '小王',
                    age: 20,
                    class: 2
                },
                {
                    name: '小李',
                    age: 23,
                    class: 1
                },
            ]; 
            var oWrapper = $('.stb')
            studentArr.forEach(function(ele,index){
               var oCloneDom = $('.tpl').clone().removeClass('tpl');
               oCloneDom
                 .find('td')
                    .eq(0)
                      .text(ele.name)
                        .next()
                          .text(ele.age)
                            .next()
                              .text(ele.class)
                oWrapper.append(oCloneDom);
            })
    
        </script>

    .data( )

    data跟dom 有映射但是不是直接操作dom,所以效率更高  (attr就需要dom操作)

    jQuery中一般用data ,比attr和prop更高效,省去dom操作

  • 相关阅读:
    css中属性继承性总结
    CSS3属性transform(变形),transition(过渡),animation(动画)
    js中的addEventListener
    CSS换行:word-wrap、word-break和text-wrap差别以及 控制文本行数
    js取变量名的规则
    瀑布流布局及其原理
    利用chrome浏览器调试js断点
    return用法
    行内标签和块级元素有哪些
    2019年思岚科技第三季度大事记
  • 原文地址:https://www.cnblogs.com/tianya-guoke/p/10542147.html
Copyright © 2020-2023  润新知