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>

目录
相关文章
|
2月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
2月前
|
监控 JavaScript 前端开发
确定使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript
【10月更文挑战第24天】选择使用 `defer` 属性还是 `async` 属性来异步加载 JavaScript 是一个需要综合考虑多个因素的决策。需要根据脚本之间的依赖关系、页面加载性能要求、脚本的功能和重要性等因素来进行权衡。在实际应用中,需要通过测试和验证来确定最适合的加载方式,以提供更好的用户体验和页面性能。
|
5月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
56 1
|
2月前
|
监控 JavaScript 前端开发
使用 `defer` 属性异步加载 JavaScript
【10月更文挑战第24天】使用 `defer` 属性异步加载 JavaScript 是一种有效的提高页面性能和用户体验的方法。通过合理设置 `defer` 属性,可以在不影响页面渲染的情况下异步加载脚本,并确保脚本的执行顺序。在实际应用中,需要根据具体情况选择合适的加载方式,并注意处理可能出现的问题,以确保页面能够正常加载和执行。
|
3月前
|
移动开发 JavaScript 前端开发
原生js如何获取dom元素的自定义属性
原生js如何获取dom元素的自定义属性
94 4
|
3月前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器
32 1
|
4月前
|
JavaScript 前端开发
JavaScript基础知识-枚举对象中的属性
关于JavaScript基础知识中如何枚举对象属性的介绍。
38 1
JavaScript基础知识-枚举对象中的属性
|
4月前
|
JavaScript 前端开发
JavaScript写的序列代码生成器
JavaScript写的序列代码生成器
|
3月前
|
存储 JavaScript 前端开发
js中map属性
js中map属性
27 0
|
3月前
|
缓存 JavaScript 前端开发
深入理解Vue.js中的计算属性与侦听属性
【10月更文挑战第5天】深入理解Vue.js中的计算属性与侦听属性
42 0