WD1X.COM - 问答一下,轻松解决,电脑应用解决专家
主板显卡CPU内存显示器
硬盘维修显卡维修显示器维修
注册表系统命令DOS命令Win8
存储光存储鼠标键盘
内存维修打印机维修
WinXPWin7Win11Linux
硬件综合机箱电源散热器手机数码
主板维修CPU维修键盘鼠标维修
Word教程Excel教程PowerPointWPS
网络工具系统工具图像工具
数据库javascript服务器
PHP教程CSS教程XML教程

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

更新时间:2012-07-09 15:17 作者:佚名点击:

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

实现原理:
添加和删除是逆向过程,实现是一致的。
增加时,向父容器中增加元素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>
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
你可能感兴趣的内容