关于MetaData的相关了解

在软件构造领域,元数据被定义为:在程序中不是被加工的对象,而是通过其值的改变来改变程序的行为的数据。它在运行过程中起着以解释方式控制程序行为的作用。在程序的不同位置配置不同值的元数据,就可以得到与原来等价的程序行为。
下面谈谈最近接触的一款jquery插件-jquery.metadata.2.1:
一、方法metadata的选项:方法metadata的选项是一组键/值,解释如何获得元数据,都是可选的。一般有如下三种类型
1、type--指定元数据的定位符是什么,它一般有如下三种值:
class :在class属性中找,如果type没有指定就默认是class;
elem:在要找的dom元素的内部找elem;
attr:自定的的属性;
2、name:
当type的值是attr的时候用name指定属性,这个属性包含有元数据;
当type的值是elem的时候,指定标签的名子,这个标签包含元数据;
3、single:
从single给定的名子的item中保存或者得到数据;
二、官方的例子
1、metadata()没有任何选项
<li class="someclass {some: 'data'} anotherclass">...</li>
<script>alert($('li.someclass').metadata().some);</script>
这里会默认type的值为class,元数据从class属性中寻找,最终找到名字为name的元数据(这里是元数据的名称name,和上面的name选项不是一个概念),输出结果为data;
2、metadata()选项中指定的type为attr
<div id="test" mydata="{name:'terry',age:20}"></div>
<script>alert($("div#test").metadata({type:"attr",name:"mydata"}).name);</script>
这里选项中指定的type为attr,所以要指定name,就是我们自定义的属性mydata,自定义的意思是除了type:class之外你用的其它属性,都属于自定义。这里输出的结果为terry。
3、metadata()选项中指定的type为elem
<div class="test"><span style="display:none">{name:"jinming"}</span></div>
<script>alert($("div.test").metadata({type:"elem",name:"span"}).name);</script>
type为elem,则从name指定的子dom,就是内部标签中找元数据,这里输出jinming。
4、jQuery.metadata.setType("a","b")方法
把所有元数据查找方式指定为
metadata({
type:"a",
name:"b"
});
例如:
<div class="test"><span style="display:none">{name:"jinfffming"}</span></div>
<script>
jQuery.metadata.setType("elem","span");
alert($("div.test").metadata().name);
</script>
这里输出jinfffming。

posted on 2010-08-17 09:20  基斯盐  阅读(883)  评论(0编辑  收藏  举报

导航