JQuery中自定义data-*的使用

向元素附加数据,然后取回该数据:

$("#btn1").click(function(){
  $("div").data("greeting", "Hello World");
});
$("#btn2").click(function(){
  alert($("div").data("greeting"));
});

上面为js代码中直接存取数据,而下面则以freemarker渲染为例展示如何通过data-*的方式来实现存取数据:

<table id="j_sortTables" class="gui-table">
                <thead>
                    <tr>
                        <th>建筑ID</th>
                        <th>楼层编码</th>
                        <th>楼层号</th>
                        <th>楼层名称</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <#if (data?exists) && (data?size gt 0) >
                        <#list data as item>
                        <tr>
                            <td>${item.build_id!''}</td>
                            <td>${item.floor_code!''}</td>
                            <td>${item.floor_no!''}</td>
                            <td>${item.floor_name!''}</td>
                            <td>
                                <button data-toggle="modal" data-target="#j_EditRoleDialog" data-id="${item.id!''}" data-buildid="${item.build_id!''}" data-floorcode="${item.floor_code!''}" data-floorno="${item.floor_no!''}" data-floorname="${item.floor_name!''}" class="g-btn g-btn-m5d78af j_edit">编辑</button>
                                <button data-url="/g/admin/sys/floor/delete" data-id="${item.id!''}" data-message="删除该业态可能会使部分商户产生异常状态,请谨慎操作。" class="g-btn g-btn-m5d78af j_del">删除</button>
                            </td>
                        </tr>
                        </#list>
                    <#else>
                        <td colspan="8">暂无数据</td>
                    </#if>
                </tbody>
        </table>

上例为一个table,每一行有一个编辑按钮,点击后弹出对话框重新修改数据,而之前的数据则为默认数据填入对话框中的输入框中。
标签中 data-floorcode=”${item.floor_code!”}“引号中内容为freemarker渲染器的标签,渲染时把该条目的floor_code数据置换到标签位置,由此该数据和这个编辑按钮绑定在一起。

<div class="modal fade" id="j_EditRoleDialog" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
                        <h4 class="modal-title" id="myModalLabel">编辑楼层</h4>
                    </div>
                    <div class="modal-body">
                        <form id="j_EditForm" action="/g/admin/sys/floor/edit" method="post" novalidate="novalidate">
                            <ul>
                                <li class="g-inputcon g-dottodbobor">
                                    <span class="g-inputname"><i>*</i>建筑编码</span>
                                    <div>
                                        <input id="j_editBulidId" name="buildId" required="" placeholder="1-10字符" maxlength="10" title="请填写建筑编码" class="g-input g-large-input g-verity-input" type="text" aria-required="true">
                                    </div>
                                    <p data-tips="" class="g-errmsg"></p>
                                </li>
                                <li class="g-inputcon g-dottodbobor">
                                    <span class="g-inputname"><i>*</i>楼层编码</span>
                                    <div>
                                        <input id="j_editFloorCode" name="floorCode" required="" placeholder="1-10字符" maxlength="10" title="请填写楼层编码" class="g-input g-large-input g-verity-input" type="text" aria-required="true">
                                    </div>
                                    <p data-tips="" class="g-errmsg"></p>
                                </li>
                                <li class="g-inputcon g-dottodbobor">
                                    <span class="g-inputname"><i>*</i>楼层号</span>
                                    <div>
                                        <input id="j_editFloorNo" name="floorNo" required="" placeholder="1-10字符" maxlength="10" title="请填写楼层号" class="g-input g-large-input g-verity-input" type="text" aria-required="true">
                                    </div>
                                    <p data-tips="" class="g-errmsg"></p>
                                </li>
                                <li class="g-inputcon g-dottodbobor">
                                    <span class="g-inputname"><i>*</i>楼层名称</span>
                                    <div>
                                        <input id="j_editFloorName" name="floorName" required="" placeholder="1-10字符" maxlength="30" title="请填写楼层名称" class="g-input g-large-input g-verity-input" type="text" aria-required="true">
                                    </div>
                                    <p data-tips="" class="g-errmsg"></p>
                                </li>

                                <li class="g-inputcon">
                                <input id="edit_floor_id" name="id" type="hidden" class="g-input g-large-input g-verity-input" value="">
                                    <input class="g-btn g-btn-m5d78af" type="submit" value="确定">
                                    <input data-dismiss="modal" aria-label="Close" class="g-btn g-btn-mdadada" type="reset" value="取消">
                                </li>
                            </ul>
                        </form>
                    </div>
                </div>
            </div>
    </div>

上面为弹窗代码。

$editBuildId = $('#j_editBulidId'),
        $editFloorName = $('#j_editFloorName'),
        $editFloorNo = $('#j_editFloorNo'),
        $editFloorCode = $('#j_editFloorCode'),
        $editId = $('#edit_floor_id');
 $('.j_edit').on('click',function(){
            var $this = $(this),
                buildId = $this.data('buildid'),
                floorName = $this.data('floorname'),
                floorNo = $this.data('floorno'),
                floorCode = $this.data('floorcode'),
                id = $this.data('id');
            $editFloorCode.val(floorCode);
            $editFloorName.val(floorName);
            $editFloorNo.val(floorNo);
            $editBuildId.val(buildId);
            $editId.val(id);
        }); 

通过上面js完成data字段的值获取然后填入弹出框的输入框中。

需要注意的是data-floorno 横线后面不能出现大写字母 如果为data-floorNo 则无法获取到相应标签和值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值