使用jQuery获取data-的自定义属性_jquery

废话少说,先上代码

jQuery.fn.dataset = function(attr, val) {
    // 获取数据集
    if (arguments.length == 0) {
      var dataset = {};
      jQuery(this).eq(0).each(function() {
        var attrs = this.attributes;
        for (var i = 0, l = attrs.length; i < l; i++) {
          var attr = attrs[i];
          if (/^data-/i.test(attr.name)) {
            dataset[decode(encode(attr.name.substring(5)))] = autobox(attr.value);
            if (decode(encode(attr.name.substring(5))) == "path") {
              dataset[decode(encode(attr.name.substring(5)))] = attr.value != null ? String(attr.value) : null;
            }
            if (decode(encode(attr.name.substring(5))) == "name") {
              dataset[decode(encode(attr.name.substring(5)))] = attr.value != null ? String(attr.value) : null;
            }
          }
        }
      });
      return dataset;
    }

    // 返回指定数据
    if (arguments.length == 1 && typeof attr != 'object') {
      if(encode(attr) == "data-path"){
        return this.attr(encode(attr));
      }
      return autobox(this.attr(encode(attr)));
    }

    // 设置数据集
    var dataset = attr;
    if (typeof attr != 'object') {
      dataset = {};
      dataset[attr] = String(val);
    }
    var tmp = {};
    jQuery.each(dataset, function(k, v) {
      tmp[encode(k)] = autobox(v);
    });
    return this.attr(tmp);
  };

通过jQuery制作组件,可以轻松获取到我们data-的自定义属性,也可以给data-属性来赋值。

获取:

$("div").dataset("name") //获取data-name的值

赋值:

$("div").dataset("name","Tezml") //给data-name这个属性赋值为Tezml

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery获取自定义属性、jq获取data自定义属性、jquery获取data属性值、jquery 获取data id值、jquery 获取data,以便于您获取更多的相关知识。

时间: 2024-10-26 17:58:52

使用jQuery获取data-的自定义属性_jquery的相关文章

javascript-关于jquery 获取data属性值的问题

问题描述 关于jquery 获取data属性值的问题 <ul class="pics"> <li><a id="img1" href="javascript:choose(1);" title="梦幻玫瑰套装" data-img="1.png">梦幻玫瑰套装</a></li> </ul> function choose(index){

jquery获取radio值实例_jquery

本文实例讲述了jquery获取radio值的方法,分享给大家供大家参考.具体如下: 单选组radio: 复制代码 代码如下: $("input[@type=radio][@checked]").val(); 单选组 radio: 复制代码 代码如下: $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项 获取一组radio被选中项的值 复制代码 代码如下: var ite

jquery获取当前日期的方法_jquery

本文实例讲述了jquery获取当前日期的方法.分享给大家供大家参考. 具体如下: 复制代码 代码如下: <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <title>jquery当前日期</title> <script type="text/javascript"

jQuery 获取对象 定位子对象_jquery

选择中的特殊符号: # 指示 id . 指示 class * 全选 , 多选 空格 后代 > 子 ~ 兄弟 + 下一个 : 子(多功能) () 函数式的过滤与查找 获取 div 下的所有标题对象: $("div :header") 复制代码 代码如下: <body> <h3>AAA</h3> <p>BBB</p> <h4>CCC</h4> <div> <h3>DDD<

jquery用data方法获取某个元素上的事件_jquery

jquery的给元素绑定的事件可以用data方法取出来 通过$(element).data("events")来获取 // 比如给一个button绑定两个click事件 $("button").click(function() { alert("1") }); $("button").click(function() { alert("2") }); // 这个时候点击该button会分别弹出 2 和1的a

对 jQuery 中 data 方法的误解分析_jquery

今天 谢亮 兄弟和我讨论一个东西的时候,谈到了性能,他用的是 attr 操作自定义属性 data-uid,我说用 data 好,因为是 dataset 实现,然后他去翻了下 jQuery 源码和我说,没有发现这个东西,我就纳闷了.于是我去仔细读了下 data 方法的源码,才发现我一直误会了,再此,向之前问我 data 方法的群友道歉,我 "骗" 了你们,你们来打我吧. 今天我就重新解释下 data 方法,先看下 jQuery 1.11.0 的手册里肿么说的吧,请移步至http://sh

jQuery获取剪贴板内容的方法_jquery

本文实例讲述了jQuery获取剪贴板内容的方法.分享给大家供大家参考,具体如下: 这两天弄fckeditor粘贴功能,随着工作的深入和在网上查询资料,知道了在网页中一般是不允许访问"剪贴板"的,因为这样存在着很大的安全隐患,我自己也尝试着写了一个简单的demo 在IE和FF中剪贴板的访问是可控的,但是在Opera.Chrome.Safari浏览器中是不允许访问的,这样就产生了浏览器兼容的问题,怎么样才能让其他的浏览器兼容这个功能呢,在网上查找了一些资料--"使用flash去访

jQuery中data()方法用法实例_jquery

本文实例讲述了jQuery中data()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以向匹配元素附加数据,或者从匹配元素获取数据. 语法结构一: 复制代码 代码如下: $(selector).data(name,value) 参数列表: 参数 描述 name 存储的数据名称. value 将要存储的任意数据. 实例代码: 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-

jQuery 获取跨域XML(RSS)数据的相关总结分析_jquery

前段时间项目,需要前端JS获取跨域XML(RSS),最先打算使用jQuery.ajax方法获取,但是在ie9以下,提示"拒绝访问的" 略尴尬,网上查找了相关资料总结了以下几种方法: 一.google的jGFeed:相信很多同学对这个应该不陌生,使用也相对简单: 源码: (function($){ $.extend({ jGFeed : function(url, fnk, num, key){ // Make sure url to get is defined if(url == n