当前位置:  软件>JavaScript软件

jquery对象/标签映射扩展 NickName

    来源:    发布时间:2015-01-03

    本文导语:  jquery对象/标签映射扩展-NickName  OTM是什么  以往把这样的一个json对象  var data = {}; data.UserId = "8888"; data.UserName = "赵六"; data.School="湖北工业大学"; data.schoolNo=100002; data.Age=23; ... 通过jquery设置到html标签上或许得...

jquery对象/标签映射扩展 NickName[图片]

jquery对象/标签映射扩展-NickName 

OTM是什么 

以往把这样的一个json对象 

var data = {};  
data.UserId = "8888";  
data.UserName = "赵六";  
data.School="湖北工业大学";  
data.schoolNo=100002;  
data.Age=23; ...  

通过jquery设置到html标签上或许得这么干, 

$("#UserId ").text(data.UserId );
$("#UserName ").val(data.UserName );
$("#School").attr("src",data.School);  
$("#schoolNo").val(data.schoolNo);  
... 

通过jquery获取html标签的值为一个json对象得这么干, 

var jsonData = {};  
data.UserId =$("#UserId ").text( );  
data.UserName =$("#UserName ").val( );、  data.School=$("#School").attr("src");  
data.schoolNo=$("#schoolNo").val();  
... 

这个过程太繁琐了!突然你有一天发现也可以这么干,因为你发现了NIckname(本文要讲的东东) 

把json设置到HTML标签 

$("#namespace").NickNameSet(data);   

从HTML标签获取值为json 

var jsonData = $("#namespace").NickNameGet();//取值   

哈,怎么样?两句话搞定,世界实在是太美好了! 

jquery对象/标签映射扩展 NickName[图片]jquery对象/标签映射扩展 NickName[图片]OTM,对象-标签映射(Object/Tag Mapping),它可以把一个JSON对象的值直接渲染到到web页面的各个HTML元素上,同时也能够把web页面上各个元素的值收集起来构成一个JSON对象,这一切不需要您编写额外的代码。 

OTM一词命名借鉴于ORM,对象-关系映射(Object/Relation Mapping,简称ORM),主要用于web页面中JSON对象和HTML标签的互相映射。 

NickName是什么 

NickName是借助以上思想的一个具体实现,支持几乎所有的HTML标签映射,笔者倾向于在HTML标签上额外添加一个NickName属性来完成OTM,所以取名NIckName。

NickName的授权 

作者知鸣,您可以在遵循BSD协议下使用!。 

NickName的结构 

序号 

文件名 

作用 

NIckName.js 

核心文件,该文件引入您的项目才能使用 

Demo.html 

示例文件,提供了入门的使用示例 

Demo2.html 

另一个示例文件 

Develop.html 

开发文件,NIckName的开发与测试文件 

NickName文档 

即本文档,v1.0 

 依赖于jquery1.4.4以上版本 

NickName示例 

页面显示效果 

  jquery对象/标签映射扩展 NickName[图片]

点击NickNameSet按钮后效果

jquery对象/标签映射扩展 NickName[图片]

点击NickNameGet获取的值

{ 
    "name": "知鸣",  
    "school": "hbut",  
    "graduationDate": "2012年06月",  
    "sex": [ 

        { 

            "chk": false,  

            "val": "女" 

        },  

        { 

            "chk": true,  

            "val": "男" 

        } 

    ],  

    "degree": [ 

        { 

            "chk": true,  

            "val": "学士" 

        },  

        { 

            "chk": false,  

            "val": "硕士" 

        } 

    ],  

    "company": { 

        "href": "http://www.dangdang.com/",  

        "text": "当当网" 

    },  

    "pageimg": "http://img4.ddimg.cn/header/header2012/dangdang_logo.jpg" 

} 

     需要特别说明的是,笔者这里演示时在html标签上添加了一个nickname属性完成OTM,不必惊讶笔者为何这样做,原因在于name和id这样的属性页面编程可能多个地方使用,很有可能出现json对象的key和html标签的name,id属性值不一致情况,我们又不能随意更改其值,所以就单独添加了一个nickname属性专门做OTM,这是nickname提倡的方式。

实际上这不是必须的,您可以使用html已有的任何属性(除type外)如name,id等,此时您需要调用NickNameSetBy(“name”/”id”)或者NickNameGetBy(“name”/”id”)方法完成OTM,在NickName提供的API方法中有具体讲解,我们也在demo2.html文件中提供了这样的一个实例。  

NickName提供的API方法

温馨提示:有些情况下您可以直接查看nickname的源码和开发文件,这样也行比您看以下文档更快知道如何使用它。 

方法名称

作用

参数

返回值

$(s).NickNameSetBy(attr,jsonData)

把json值按照key键设置到html标签属性attr=key的标签上,attr可以是html已有的属性如name,id等或者你自定义添加的一些属性,它们同样能够识别。

attr html标签的某个属性名称

this

$(s).NickNameSet(jsonData)

 

相当于$(s).NickNameSetBy(“NickName”,jsonData),既把jsonData的值设置到属性NickName=key的html标签上

 

this

$(s).NickNameGetBy(attr)

获取元素含有attr属性的标签的值并组成一个json对象,attr可以是html已有的属性如name,id等或者你自定义添加的一些属性,它们同样能够识别。

 

json 

$(s).NickNameGet()

相当于

$(s).NickNameGetBy(“NickName”)

既获取含有NickName属性标签的值并组成一个json对象

 

 

json 

NickName支持的HTML标签

 NickName支持几乎所有的HTML标签,对于没有type属性的HTML标签需要手动为标签添加type属性,如段落标签p,我是p标签

,只有具有type属性的标签才会参与OTM。笔者提倡您根据自己的需要改变标签的默认取值或者赋值行为,笔者认为radio和checkbox默认取值赋值行为可能不一定符合您的实际使用场景,如果有需要您可以修改它并把建议Emali给笔者。

标签名

type

默认赋值行为

默认取值行为

p

type="p"

$(s).text(obj)

obj=$(s).text()

table->tr->td

type="td"

同上

同上

table->tr->th

type="th"

同上

同上

div

type="div"

同上

同上

span

type="span"

同上

同上

 

 

 

 

input->radio

单选按钮组

 

type="radio"

array=[obj0,obj1,obj2,...]

其中obj={chk:false,val:1}

依次设置到每个checbox上

$(s).attr("checked"obj.chk);$(s).val(obj.val);

依次获取每个checkbox

obj={

chk:$(s).attr(“checked”),

val:$(s).val()

}组成

array=[obj0,obj1,obj2,...]

input->checkbox

复选按钮组

type="checkbox"

同上

同上

 

 

 

 

image

type="image"

$(s).attr("src",obj)

obj=$(s).attr("src")

 

 

 

 

input->number

type="number"

$(s).val(obj)

obj=$(s).val()

input->submit

type="submit"

同上

同上

input->hidden

type="hidden"

同上

同上

input->button

type="button"

同上

同上

input->password

type="password"

同上

同上

input-> text

type="text"

同上

同上

input->reset

type="reset"

同上

同上

textarea

type="textarea"

同上

同上

 

BUG

如果使用中出现bug,请将bug提交至weichengdong2008@foxmail.com  

2013年6月9日  v1.0


    
 
 

您可能感兴趣的文章:

  • 地理信息映射展示项目 jQuery Geo
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jQuery 扩展插件 jQuery.dragmove
  • jQuery Mobile 图表扩展 JQMCharts
  • 扩展jQuery对象时如何扩展成员变量具体怎么实现
  • jQuery的文本编辑框扩展插件 TextExt
  • jquery easyui表单重置扩展思路
  • jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
  • Jquery easyui表单异步验证扩展
  • Jquery中扩展方法extend使用技巧
  • jQuery的表格扩展插件 jTable
  • 文本域光标操作的jQuery扩展代码
  • 文本域光标操作的jQuery扩展分享
  • Jquery easyui中combobox的默认“请选择”“全部”扩展示例
  • Jquery easyui之datagird查询框扩展示例
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery向导插件 Jquery Wizard Plugin
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery圆角插件 jQuery Corners
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery相册插件 jQuery.popeye
  • jQuery UI组件 jQuery UI
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery分页插件 Pagination jQuery Plugin
  • jQuery日历插件 jQuery Week Calendar
  • jQuery的中文日历插件 jQuery.datePickerCn
  • jQuery实现CSS3动画效果的插件 jQuery Transit
  • jQuery的CSV插件 jQuery CSV
  • jQuery的气泡提示插件 jquery.ns_bub.js
  • jQuery气泡提示插件 jquery-rollover-tooltip
  • jQuery对话框 jQuery Modal Dialog


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3