开发者社区> 爱六六> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

javascript自动序列编号和属性编号

简介: 自动序列编号和自动属性编号,效果图如下: 实现原理:添加和删除是逆向过程,实现是一致的。增加时,向父容器中增加元素append方法,并将所有的自定义属性编号和序列编号设置为空,然后通过$.each方法,重新为自定义属性编号和序列编号赋值。
+关注继续查看

自动序列编号和自动属性编号,效果图如下:

实现原理:
添加和删除是逆向过程,实现是一致的。
增加时,向父容器中增加元素append方法,并将所有的自定义属性编号和序列编号设置为空,然后通过$.each方法,重新为自定义属性编号和序列编号赋值。

$.each(items, function (k, v) {
        $(this).attr("opt", "mopt" + k);
       serials.eq(k).html(k);
});


删除时,为所有删除按钮绑定事件live方法,将元素从父容器中删除detach方法,并将所有的自定义属性编号和序列编号设置为空,然后通过$.each方法,重新为自定义属性编号和序列编号赋值。

$("#test .del").live("click", function () {  //为删除按钮绑定点击事件
    var dels = test.find(".del");   //所有所删除按钮
    var delnum = dels.index($(this));  //当前删除按钮的索引值
    var items = test.find(".item");
    items.eq(delnum).detach();   //从父容器中将此节点删除
    items.attr("opt", "");
    var serials = test.find(".serial");
    serials.html("");
    $.each(items, function (k, v) {  //自定义属性重新和编号赋值
        $(this).attr("opt", "mopt" + k);
        serials.eq(k).html(k);
    });
});

示例如下:

<!DOCTYPE html> <html> <head> <title>each和live实现自动编号</title> <script type="text/javascript" src="http://files.cnblogs.com/kuikui/jquery.js"></script> <style type="text/css"> *{margin: 0px;padding: 0px;} .cont{width:600px; margin:60px auto 0px;} #test .item{padding: 10px 6px;border-bottom: 1px solid #666666;} #test .serial{margin-right: 20px;} #test .del{padding: 6px;margin-left: 30px;} </style> </head> <body> <div class="cont"> <input id="btn" type="button" value="增加" /> <div id="test"></div> </div> <script type="text/javascript"> $(function () { var num = 1; var test = $("#test"); $("#btn").click(function () { test.append("<div class='item'><span class='serial'></span>aaaaa" + num + "<a class='del'>删除</a></div>"); var items = test.find(".item"); var serials = test.find(".serial"); items.attr("opt", ""); serials.html(""); $.each(items, function (k, v) { $(this).attr("opt", "mopt" + k); serials.eq(k).html(k); }); num++; }); $("#test .del").live("click", function () { var dels = test.find(".del"); var delnum = dels.index($(this)); var items = test.find(".item"); items.eq(delnum).detach(); items.attr("opt", ""); var serials = test.find(".serial"); serials.html(""); $.each(items, function (k, v) { $(this).attr("opt", "mopt" + k); serials.eq(k).html(k); }); }); }); </script> </body> </html>

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/81105949 ...
896 0
javascript多种方法实现数组去重
先说说这个实例的要求:写一个方法实现数组的去重。(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考); 先给初学者解释一下什么叫数组去重(老鸟跳过):意思就是讲数组里面重复的元素去掉,比如说var arr = [3,2,4,2,1,2]; 数组去重得到的新数组是 [3,2,4,1],就是这么一个功能。
805 0
Javascript实现Java的HashMap(链表散列)
前言 如果你研究过Java中HashMap的源码,你就会知道HashMap底层的存储结构。Java中的HashMap是以链表散列的形式存储的,也就是数组+链表:HashMap中有一个Entry数组,默认的数组长度是16。
1853 0
+关注
爱六六
前端开发相关专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JavaScript 语言在引擎级别的执行过程
立即下载
Javascript中的对象
立即下载
Javascript中的函数
立即下载