新文章 网摘 文章 随笔 日记

js闭包动态增删页面元素范例

 

 

    <script type="text/javascript">
        (function (window, $, options) {

            /********************************/

            $delegatingHandlersContainer = $('#delegatingHandlersContainer');

            var DelegatingHandlers = {
                //添加
                add: function () {
                    var count = $delegatingHandlersContainer.children('div').length;
                    var item = $delegatingHandlersContainer.append('<div class="form-inline">'
                        + '<input class="form-control" type="text" id="DelegatingHandlers_' + count + '_" name="DelegatingHandlers[' + count + ']" value="">'
                        + '<button type="button" class="btn btn-primary btnAdd">删除</button>'
                        + '<span class="text-danger field-validation-valid" data-valmsg-for="DelegatingHandlers[' + count + ']" data-valmsg-replace="true"></span>'
                        + '</div>');

                    $delegatingHandlersContainer.children('div:last').children('button').click(function (e) {
                        DelegatingHandlers.delete(e);
                    });
                },

                //删除
                delete: function (e) {
                    $(e.currentTarget).parent().remove();
                    DelegatingHandlers.updateDelegatingHandlerIndex();
                },
                //更新索引
                updateDelegatingHandlerIndex: function () {
                    $delegatingHandlersContainer.children('div').each(function (i) {
                        $input = $(this).children('input');
                        $input.attr('id', 'DelegatingHandlers_' + i + '_');
                        $input.attr('name', 'DelegatingHandlers[' + i + ']');
                        $(this).children('span').attr('data-valmsg-for', 'DelegatingHandlers[' + i + ']');
                    });
                }
            };

            $('#btnAddDelegatingHandler').click(function () {
                DelegatingHandlers.add();
            });

            $delegatingHandlersContainer.find('div button').click(function (e) {
                DelegatingHandlers.delete(e);
            });

            /************************************/

            $downstreamHostAndPortsContainer = $('#downstreamHostAndPortsContainer');

            var DownstreamHostAndPorts = {
                //添加
                add: function () {
                    var count = $downstreamHostAndPortsContainer.children('div').length;
                    var item = $downstreamHostAndPortsContainer.append('<div class="form-inline">'
                        + '<label class="control-label" for="DownstreamHostAndPorts_' + count + '__Host">Host</label>'
                        + '<input class="form-control" type="text" id="DownstreamHostAndPorts_' + count + '__Host" name="DownstreamHostAndPorts[' + count + '].Host" value="">'
                        + '<label class="control-label" for="DownstreamHostAndPorts_' + count + '__Port">Port</label>'
                        + '<input class="form-control" type="number" data-val="true" data-val-required="The Port field is required." id="DownstreamHostAndPorts_' + count + '__Port" name="DownstreamHostAndPorts[' + count + '].Port" value="">'
                        + '<button type="button" class="btn btn-primary btnAdd">删除</button>'
                        + '<span class="text-danger field-validation-valid" data-valmsg-for="DownstreamHostAndPorts[' + count + '].Host" data-valmsg-replace="true"></span>'
                        + '<span class="text-danger field-validation-valid" data-valmsg-for="DownstreamHostAndPorts[' + count + '].Port" data-valmsg-replace="true"></span>'
                        + '</div>');

                    $downstreamHostAndPortsContainer.children('div:last').children('button').click(function (e) {
                        DownstreamHostAndPorts.delete(e);
                    });
                },

                //删除
                delete: function (e) {
                    $(e.currentTarget).parent().remove();
                    DownstreamHostAndPorts.updateDownstreamHostAndPortIndex();
                },
                //更新索引
                updateDownstreamHostAndPortIndex: function () {
                    $downstreamHostAndPortsContainer.children('div').each(function (i) {
                        $labels = $(this).children('label');
                        $($labels[0]).attr('for', 'DownstreamHostAndPorts_' + i + '__Host')
                        $($labels[1]).attr('for', 'DownstreamHostAndPorts_' + i + '__Port')

                        $input = $(this).children('input');
                        $($input[0]).attr('id', 'DownstreamHostAndPorts_' + i + '__Host');
                        $($input[0]).attr('name', 'DownstreamHostAndPorts[' + i + '].Host');

                        $($input[1]).attr('id', 'DownstreamHostAndPorts_' + i + '__Host');
                        $($input[1]).attr('name', 'DownstreamHostAndPorts[' + i + '].Port');

                        $span = $(this).children('span');
                        $($span[0]).attr('data-valmsg-for', 'DownstreamHostAndPorts[' + i + '].Host');
                        $($span[1]).attr('data-valmsg-for', 'DownstreamHostAndPorts[' + i + '].Port');
                    });
                }
            };

            $('#btnAddDownstreamHostAndPorts').click(function () {
                DownstreamHostAndPorts.add();
            });

            $downstreamHostAndPortsContainer.find('div button').click(function (e) {
                DownstreamHostAndPorts.delete(e);
            });

            /************************************/
        })(window, jQuery);
    </script>

 

posted @ 2020-03-09 16:57  岭南春  阅读(71)  评论(0)    收藏  举报