jquery metadata 详解

1.0的版本是这样的$.meta 
2.0的版本是这样的$.metadata 
很多插件的编写都用到了这个插件,个人感觉这个东西应该是jquery官方的。推荐使用2.0的版本,

因为现在官方上就是2.0的文档(http://docs.jquery.com/Plugins/Metadata),1.0的,我个人还没看懂,倒是2.0的例子运行很正常。

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title></title>  
<script type="text/javascript" src="jquery.metadata.2.0/jquery.metadata.2.0/test/jquery.js"></script>  
<!-- 这里既引用了1.0又引用了2.0,就是为了说明它们之间没有冲突,我的理解是以前的优秀插件里面使用了1.0,但是1.0的问题确实有,所以2.0把meta改成metadata 这样就不会相互冲突了-->  
<script type="text/javascript" src="jquery.metadata.2.0/jquery.metadata.2.0/jquery.metadata.js"></script>  
<script type="text/javascript" src="jquery.metadata.1.0/jquery.metadata.1.0/jquery.metadata.js"></script>  
<script language="javascript">  
 $(document).ready(function(){  
            alert($(".media").metadata().src);    
            alert($('li.someclass').metadata().some);  
        });  
  
</script>  
</head>  
  
<body>  
  
<OBJECT class="media {src:'/tems/upload/192168.mp3'}" data="[object Object]"></OBJECT>  
<li class="someclass {some: 'data'} anotherclass">...</li>  
OR  
<li data="{some:'random', json: 'data'}">...</li>  
OR  
<li><script type="data">{some:"json",data:true}</script> ...</li>  
<script language="javascript">  
var data = $('li.someclass').metadata();  
if ( data.some && data.some == 'data' )  
    alert('It Worked!');  
</script>  
</body>  
</html>  

翻译: 
attr:内部属性,参数名字指向属性名 
class:内部类的属性,用{}包裹 
elem:内部子元素 (如script标签).参数的名字指向元素名。 

 

函数: 
metadata( options )返回jQuery对象

提取元数据,缓存,并返回元数据从jQuery集合的第一个元素。

Arguments: 
options (Optional) Options 

定义要提取的元数据类型的一组键/值对。所有选项都是可选的。

 

Options: 
metadata( options )中的options有三种:type、name、single 

type String Default: 'class' 

指定元素的预期位置。可能的值是“class”:在类属性的搜索,“'elem”:在搜索元素内的元素搜索,和“attr”:在元素的自定义属性搜索。
在类中搜索元数据,而不是在类中。

$(".selector").metadata({  
   type: 'attr'  
}) 

name String Default: 'metadata' 

当类型是“attr”,指定要搜索的自定义属性的名称。当类型是“elem”,指定要搜索的元素的标记名称。

在一个名为“jdata"自定义元素属性搜索metadata。

$(".selector").metadata({  
   type: 'attr',  
   name: 'jdata'  
})

single String Default: 'metadata' 

鉴于从jQuery缓存元素提取数据的名称。
存储和检索提取到一个项目名为“jdata在jQuery的缓存数据。

$(".selector").metadata({  
   single: 'jdata'  
})  

Examples: 
Gets metadata from the class attribute. 

<li class="someclass {some: 'data'} anotherclass">...</li>  
  
<script>alert($('li.someclass').metadata().some);</script>  

Gets metadata from a custom attribute. 

<li data="{some:'random', json: 'data'}">...</li>  
<script>alert($('li.someclass').metadata({type:'attr',name:'data'}).some);</script>  

Gets metadata from a child element. 

<li class="someclass"><script type="application/json">{some:"json",data:true}</script>...</li>  
<script>alert($('li.someclass').metadata({type:'elem',name:'script'}).some);</script>  

jQuery.metadata.setType( type, name ) Returns: null 

设置所有下列元数据请求的默认类型和名称选项。

Arguments: 
type String 

指定元素的预期位置。可能的值是“class”(默认):在类属性的搜索,“elem”:在元搜索的元搜索,和“attr”:在元素的自定义属性搜索。
名称字符串
根据“类型”选项的值来搜索的标记或属性的名称。

设置metadata插件以查找自定义属性。

<li data="{some:'random', json: 'data'}" class="someclass">...</li>  
  
<script>  
$.metadata.setType('attr','data');  
alert($('li.someclass').metadata().some);  
</script> 

jQuery.metadata.get( elem, options ) Returns: Object 

设置所有下列元数据请求的默认类型和名称选项。

Arguments:
elem Element 
包含要提取的metadata的元素。
options (Optional) Options 
定义要提取的metadata类型的一组键/值对。所有选项都是可选的。查看元数据插件页以了解更多信息。

设置metadata插件以查找自定义属性。

<li class="someclass {some:'random', json: 'data'}">...</li>  
  
<script>  
$('li.someclass').each(function(){  
    var data = $.metadata.get(this);  
    alert(data.some);  
});  
</script>  

  例子:

<li id="Li1" class='someclass {"item_id": 1, "item_label": "Label"}'>Item 1</li>  
<li id="Li2" metadata='{"item_id": 1, "item_label": "Label"}'>Item 2</li>  
<li id="Li3">  
    <metadata style="display: none;">{"item_id": 1, "item_label": "Label"}</metadata>  
    Item 3 </li>  
<li id="Li4">  
    <script type="metadata">{"item_id": 1, "item_label": "Label"}</script>  
    Item 4 </li>  
  
$(function() {  
    $("#item1").metadata().item_id; // 1  
    $("#item1").metadata({  
        "type": "class"  
    }).item_id; // 1   
  
    $("#item2").metadata({  
        "type": "attr"  
    }).item_label; // "Label"  
    $("#item2").metadata({  
        "type": "attr",  
        "name": "metadata"  
    }).item_label; // "Label"   
  
    $("#item3").metadata({  
        "type": "elem"  
    }).item_label; // "Label"  
    $("#item3").metadata({  
        "type": "elem",  
        "name": "metadata"  
    }).item_label; // "Label"   
  
    $("#item4").metadata({  
        "type": "elem",  
        "name": "script"  
    }).item_label; // "Label"  
});  

  

转载于:https://www.cnblogs.com/waisonlong/p/4998379.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的元数据(Metadata)是描述程序代码的数据,它们提供了有关代码的额外信息,例如类、方法、字段等的注释、版本信息、作者信息等。Java SE 5中引入了注解(Annotation),这是一种可以用来声明元数据的语法。 注解本身并不会影响程序的执行,但是它们可以被工具或框架用来生成代码、配置文件、文档等。Java中的元数据分为三类:注释、注解和反射。 1. 注释 注释是一种文本,它可以放在Java源代码中的任何地方。注释可以用来描述类、接口、方法、变量等的用途、功能、注意事项等。注释有三种形式:单行注释、多行注释和文档注释。 单行注释以“//”开头,可以跟在任何语句后面,直到该行结束。例如: ``` int a = 10; // 定义变量a并赋值为10 ``` 多行注释以“/*”开头,“*/”结尾,可以跨越多行。多行注释通常用于注释代码块。例如: ``` /* 这是一个多行注释 它跨越了多行 */ ``` 文档注释以“/**”开头,“*/”结尾,可以用来生成API文档。文档注释中可以使用特殊的标记(tag)来描述类、方法、变量等的功能、参数、返回值等。例如: ``` /** * 这是一个类的文档注释 */ public class MyClass { /** * 这是一个方法的文档注释 * * @param a 参数a的说明 * @param b 参数b的说明 * @return 返回值的说明 */ public int myMethod(int a, int b) { return a + b; } } ``` 2. 注解 注解是一种特殊的Java语法,它以“@”符号开头,可以放在类、接口、方法、变量等的定义前面。注解可以用来描述类、方法、变量等的功能、用途、配置信息等。注解可以有参数和默认值,参数可以是基本类型、字符串、枚举、注解等。 Java中有一些内置的注解,例如: - @Override:表示该方法是覆盖了父类中的方法。 - @Deprecated:表示该类、方法、变量已经过时,不建议使用。 - @SuppressWarnings:表示抑制编译器的警告信息。 我们也可以自定义注解,例如: ``` @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyAnnotation { String value() default "default value"; } ``` 以上代码定义了一个名为MyAnnotation的注解,它有一个名为value的参数,默认值为"default value"。 3. 反射 反射是Java中一个强大的机制,可以在运行时检查、获取、修改类、方法、变量等的信息。反射可以用来实现动态代理、依赖注入、插件化等功能。 反射中经常使用的类有Class、Method、Field、Constructor等。 例如,我们可以使用以下代码获取一个类的所有方法: ``` Class clazz = MyClass.class; Method[] methods = clazz.getDeclaredMethods(); for (Method method : methods) { System.out.println(method.getName()); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值