`
zhangyaochun
  • 浏览: 2608958 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

jq插件之metadata

阅读更多

 

   先直接上源码吧:

 

(function($){

      $.extend({

             metadata:{

                   //默认配置
                   defaults:{

                         type:"class",      //默认是class,插件支持elem
                         name:"metadata",
                         cre:/({.*})/,
                         single:'metadata'

                   },

                   /*
                     setType目前支持设置两个参数,一个type,一个name
                   */
                   setType:function(type,name){
                          this.defaults.type = type;
                          this.defaults.name = name;
                   },


                   /*
                     get获取对应的数据
                   */
                   get:function(elem,opts){

                         //合并配置
                         var settings = $.extend({},this.defaults,opts);

                         //怕opts里面外部配置single为'',强制置为metadata
                         if(!settings.single.length){
                             settings.single = 'metadata';
                         }

                         //一上来调用$.data看有没有缓存过的数据
                         var data = $.data(elem,settings.single);

                         //如果有,直接返回,不重复劳动,节省效率
                         if(data){
                               return data;
                         }

                         //给一个默认值"{}"
                         data = "{}";

                         if(settings.type == "class"){
                         //默认class方式:<p id="one" class="some_class {id: 1}">p</p>
                         //从class去读数据,用cre正则去匹配
                              var m = settings.cre.exec(elem.className);
                              if(m){
                                   data = m[1];
                              }

                         }else if(settings.type = "elem"){
                     //elem方式:<p id="one">p<script>{id:1}</script></p>
                     //从elem去读数据
                              if(!elem.getElementsByTagName){
                                    return undefined;
                              }

                              //比如上面用script作为数据源,那么name就得设置script
                              var e = elem.getElemengtsByTagName(settings.name);

                              if(e.length){
                                     //核心还是innerHTML
                                     data = $.trim(e[0].innerHTML);
                              }

                         }else if(elem.getAttribute != undefined){
                                  //自定义属性方向,通过getAttribute来获取数据源
                                  //<p id="one" class="some_class">p</p>
                                  //name就设置为自定义属性的key   
                                   var attr = elem.getAttribute(settings.name);

                                   if(attr){
                                          data = attr;
                                   }
 
                         }

                         
                          //data的类型转换!!!
                          data = eval("(" + data + ")");

                          //调用$.data存一下
                          $.data(elem,settings.single,data);

                          //把对象化的data返回
                          return data;

                   }



             }

      });


      $.fn.metadata = function(opts){
             return $.metadata.get(this[0],opts);
      };

})(jQuery);

   

 

 

 

 

分享到:
评论

相关推荐

    metadata插件

    jquery.metadata.js是一个支持固定格式解析的jquery插件,结合Validation插件能很好地融合到验证规则编码中~

    jquery.metadata.2.0

    《jQuery Metadata插件详解及其应用》 在Web开发领域,jQuery作为一个强大的JavaScript库,极大地简化了DOM操作,事件处理和Ajax交互。而jQuery Metadata插件是jQuery生态系统中的一个重要组件,它提供了一种灵活的...

    图片处理jar包之metadata-extractor

    metadata-extractor允许您通过简单的API访问数字图像和视频中的元数据。支持对多种类型的图片进行处理

    jquery.metadata.js.zip

    《jQuery Metadata插件详解及其应用》 在JavaScript的世界里,jQuery库以其易用性和强大的功能深受开发者喜爱。而jQuery Metadata插件是jQuery生态系统中的一个重要组件,它允许开发者从HTML元素中提取元数据...

    解决Android Studio Gradle Metadata特别慢的问题

    Maven 库提供了许多有用的依赖关系和插件,可以帮助开发者快速构建和测试Android应用程序。 在 Android Studio 中使用 Maven 库可以按照以下步骤进行: 1. 打开 build.gradle 文件:添加 Maven 库的依赖关系。 2....

    metadata-extractor-2.6.2-API文档-中文版.zip

    赠送jar包:metadata-extractor-2.6.2.jar; 赠送原API文档:metadata-extractor-2.6.2-javadoc.jar; 赠送源代码:metadata-extractor-2.6.2-sources.jar; 赠送Maven依赖信息文件:metadata-extractor-2.6.2.pom;...

    Laravel开发-metadata

    在本文中,我们将深入探讨Laravel开发中的"metadata"概念,以及如何在实际项目中运用这一功能。"metadata"在编程领域通常指的是关于数据的数据,它提供了额外的信息,帮助我们更好地理解和处理数据。在Laravel框架中...

    干净的myeclipse 8.5的.metadata

    2. **插件状态**:MyEclipse由多个插件组成,每个插件在`.metadata`中都有相应的状态记录。如果插件出现问题或冲突,可能会影响整体性能。 3. **首选项和设置**:用户的个性化设置也保存在`.metadata`中,包括编辑...

    metadata-extractor-2.6.2-API文档-中英对照版.zip

    赠送jar包:metadata-extractor-2.6.2.jar; 赠送原API文档:metadata-extractor-2.6.2-javadoc.jar; 赠送源代码:metadata-extractor-2.6.2-sources.jar; 赠送Maven依赖信息文件:metadata-extractor-2.6.2.pom;...

    DatabaseMetaData生成数据库DLL

    `DatabaseMetaData` 是Java数据库连接(JDBC)API的一部分,它提供了关于数据库模式、特性以及元数据的详细信息。本篇文章将深入探讨如何利用`DatabaseMetaData`生成数据库的DLL(在关系型数据库中,DLL通常指的是...

    kotlin-metadata,.zip

    在实际应用中,这个库可能被用于构建工具,如IDE插件、构建系统或者代码分析工具。例如,开发者可以利用它来生成API文档,检查代码的兼容性,或者在编译时执行代码分析和优化。对于那些需要深入理解Kotlin编译产物的...

    Myeclipse 下 workspace 的 .metadata 配置文件

    这是 `.metadata` 文件夹中最重要的部分,它包含了所有安装的 MyEclipse 插件的信息。每个插件都有自己的子目录,这些目录通常以插件的唯一标识符命名。插件的配置信息、状态和数据都存储在这里。 4. **.mylyn ...

    jquery.metadata.js

    jquery.metadata.js jQuery的metadata插件吧

    jquery.metadata.1.0_javascript_jquery_

    标题中的"jquery.metadata.1.0_javascript_jquery_"表明我们关注的是一个jQuery插件,名为jQuery Metadata。这个插件是jQuery库的一个扩展,用于解析HTML元素中的元数据(metadata)。元数据通常存储在元素的自定义...

    metadata-extractor-2.4.0.rar 获取图片 exif 信息

    metadata-extractor-2.4.0.rar metadata-extractor-2.4.0.rar 获取 图片 exif 信息 使用方法: File jpegFile = new File("c:\\newchangetime.jpg"); Metadata metadata = JpegMetadataReader.readMetadata(jpeg...

    jQuery.metadata.js

    《jQuery.metadata.js:深入解析jQuery插件的元数据应用》 在Web开发中,jQuery库以其易用性和强大的功能深受开发者喜爱。而jQuery.metadata.js是jQuery生态中的一个重要插件,它扩展了jQuery的核心功能,允许...

    spring-plugin-metadata-2.0.0.RELEASE-API文档-中文版.zip

    赠送jar包:spring-plugin-metadata-2.0.0.RELEASE.jar; 赠送原API文档:spring-plugin-metadata-2.0.0.RELEASE-javadoc.jar; 赠送源代码:spring-plugin-metadata-2.0.0.RELEASE-sources.jar; 赠送Maven依赖信息...

    metadata-extractor-2.8.1 jar包以及源码以及使用例子

    "metadata-extractor-2.8.1" 是一个Java库,专门用于从各种图像和音频文件中提取元数据。这个库是由Dave Coffin创建并维护的,它支持大量的文件格式,包括JPEG、TIFF、PNG、PDF等。元数据通常包含关于文件的详细信息...

    Flink无法获取Kafka Topic Metadata异常及解决.docx

    Flink 无法获取 Kafka Topic Metadata 异常及解决 一、问题现象 在使用 Kafka 0.11.0.1 和 Flink 1.4 进行实时计算时,Flink 无法获取 Kafka Topic Metadata,报以下异常:org.apache.kafka.common.errors....

    HDR Static Metadata Extensions(HDR标准)

    This standard specifies static High Dynamic Range (HDR) metadata extensions using an additional InfoFrame and EDID CTA data block, replacing previously reserved codes in Table 5 and Table 46 of CTA-...

Global site tag (gtag.js) - Google Analytics