Jquery 动态追加控件并获取值

简介:   先展示通过动态添加控件的结果:   实现步骤:1.引用js文件 2.引用BootStrap(纯属为了控件好看) 3.画一个Table控件用于存放按钮 控件   ...

  先展示通过动态添加控件的结果:

 

  实现步骤:

1.引用js文件  <script src="Script/jquery-1.5.1.min.js" type="text/javascript"></script>  
2.引用BootStrap(纯属为了控件好看) <link href="css/bootstrap.css" rel="stylesheet" />
 
 
3.画一个Table控件用于存放按钮 控件
    <table id="tabConten" cellpadding="10" cellspacing="0">  
            <tr> 
                <td  style=" border-left-width:0px;" colspan="5" >  
                    <input type="button" value="添加人员" style="margin-right:0px;" onclick="add()" class="btn btn-info"/>
                    <input id="btn_save" type="button" value="查看" class="btn btn-success" onclick="query()"/>
                </td>
            </tr> 
            <tr class="addPersonTh">
                    <td class="tdFontW tdCos_01"><span style="color: #F00" class="tdAlignL">*</span>&nbsp;姓名</td>
                    <td class="tdFontW tdCos_02"><span style="color: #F00" class="tdAlignL">*</span>&nbsp;性别</td>
                    <td class="tdFontW tdCos_03"><span style="color: #F00" class="tdAlignL">*</span>&nbsp;手机</td>
                    <td class="tdFontW tdCos_04"><span style="color: #F00" class="tdAlignL">*</span>&nbsp;邮箱</td>
                    <td class="tdFontW tdCos_05">操作</td>
            </tr>  
            <tr class="addPerson">
                <td>
                    <span class="span_none">A: &nbsp;&nbsp; </span>
                    <input type="text" maxlength="10" /> 
                </td>
                <td>
                    <select class="sex_style">
                        <option value="1"></option>
                        <option value="0"></option>
                    </select> 
                </td>
                <td><input type="text" maxlength="11" /></td>
                <td><input type="text" maxlength="50" /></td>
                <td><a href="#" class="del">删除</a></td>
            </tr> 
        </table>
4.设置布局样式
<style type="text/css"> #index /* 全局样式 */ { margin:0 auto; padding:0 auto; width:900px; /*border:1px solid red;*/ font-size:15px; } #tabConten{ /* 表格样式 */ margin:0 auto; border-collapse: collapse; text-align:center; } #tabConten tr td{ /* 表格内td设置 */ border:0px solid gray; } .sex_style /* 设置性别下拉框样式 */ { width:70px; } </style>
5.编写js脚本
<script type="text/javascript">        /* 增加tr行 */ 
        var num = 1;        //全局变量 默认为一组控件
        function add() {                    /* 增加人员行 */ 
            num++;
            var str = String.fromCharCode(64 + num);        
            var $tr = $("<tr class=\"addPerson\"><td><span class=\"span_none\"> " + str + ": &nbsp;&nbsp; </span><input type=\"text\"  maxlength=\"10\"/></td><td><select class=\"sex_style\" ><option value=\"1\">男</option><option value=\"0\">女</option></select></td><td><input type=\"text\" maxlength=\"11\" /></td><td><input type=\"text\"  maxlength=\"50\"/></td><td><a href=\"#\" class=\"del\">删除</a></td></tr>");
            var $parent;
            if (num == 1) {
                $parent = $("table tr:.addPersonTh");   //num默认为1 如果当前没元素就在标题后添加
            } else {
                $parent = $("table tr:.addPerson:eq(" + (num - 2) + ")");   //num默认为1 进入add事件首先将num+1,所以此处要获取在哪里添加元素需-2
            } 
            $parent.after($tr);                     
            init();
        }
        function query() {          /* 获取人员行 */  
            for (var i = 0; i < num; i++) {
                for (var j = 0; j < 4; j++) {
                    if (j == 1) {
                        alert("第"+(i+1)+"行第"+(j+1)+"的值是:"+$("table tr:.addPerson:eq(" + i + ") td:eq(" + j + ") select:.sex_style option:selected").val());
                    } 
                    else {
                        alert("第"+(i+1)+"行第"+(j+1)+"的值是:"+$("table tr:.addPerson:eq(" + i + ") td:eq(" + j + ") :text").val());
                    }
                } 
            } 
        }
        function init() {           /* 删除人员行 */
            $("table tr td a.del").unbind("click").click(function () {  
                $(this).parent().parent().remove();
                for (var i = 0; i < num - 1; i++) {
                    var str = String.fromCharCode(65 + i) + ":";
                    $("table tr:.addPerson:eq(" + i + ") span").html(str);
                }
                num--; 
            });
        }
    </script>

  其中追加的位置可分为四种,根据实际需求使用。

append()      - 在被选元素的结尾插入内容
prepend()     - 在被选元素的开头插入内容
after()       - 在被选元素之后插入内容
before()      - 在被选元素之前插入内容

 

目录
相关文章
|
7月前
|
JavaScript
jQuery 动态输入文字展示效果
jQuery 动态输入文字展示效果
49 0
|
28天前
|
JavaScript 前端开发
jquery实现动态五角星评分
jquery实现动态五角星评分
10 0
|
6月前
|
JavaScript 前端开发
JQuery显示和隐藏控件
JQuery显示和隐藏控件
33 0
|
5月前
|
JavaScript
jQuery动态拼接多张图片并且获取每张图片名称
jQuery动态拼接多张图片并且获取每张图片名称
26 1
|
5月前
|
JavaScript
jQuery动态增加一行元素和删除一行元素
jQuery动态增加一行元素和删除一行元素
18 0
|
7月前
|
JavaScript 流计算 索引
jQuery 动态输入展示效果
jQuery 动态输入展示效果
49 0
|
11月前
|
前端开发 JavaScript
jquery实现动态五角星评分
先上代码,最后附属上我的实现思路,新手做的bug多,大牛勿喷:请看代码: ☆ ☆ ☆ ☆ ☆
65 0
|
12月前
|
JavaScript 前端开发 测试技术
Bootstrap 基于Bootstrap和JQuery实现动态打开和关闭tab页
Bootstrap 基于Bootstrap和JQuery实现动态打开和关闭tab页
194 0
|
XML JavaScript 数据格式
JQuery 动态XML字符串添加节点
今天实现了动态的给一个XML字符串添加节点。
121 0
|
JavaScript
Jquery实现表格动态增加一行,删除一行(最简洁的代码实现)
Jquery实现表格动态增加一行,删除一行(最简洁的代码实现)
501 0
Jquery实现表格动态增加一行,删除一行(最简洁的代码实现)