zoukankan      html  css  js  c++  java
  • 认识data-xxx 的属性

     认识data-xxx 的属性

    如, 在bootstrap之data-toggle="table", 不加这个属性,就不能实现框架自带的js效果.

    1.它属于 HTML5 的 data-* attribute 知识范畴

    2. 在jQuery 1.6中,针对属性字面包含内嵌破折号的情况进行了更改,以符合W3C HTML5规范。

    The treatment of attributes with embedded dashes was changed in jQuery 1.6 to conform to the W3C HTML5 specification.

    1.1 进一步理解

    当使用.data()获取值时,jQuery会首先尝试将获取的字符串值转化成JS类型,请参考

     jQuery中data函数源码

    function dataAttr(elem, key, data) {
        // If nothing was found internally, try to fetch any 
        // data from the HTML5 data-* attribute 
        if (data === undefined && elem.nodeType === 1) {
            // rmultiDash = /([A-Z])/g 
            var name = "data-" + key.replace(rmultiDash, "-$1").toLowerCase();
            data = elem.getAttribute(name);
            if (typeof data === "string") {
                try {
                    /*.data(key)方法尝试将获取的值转化成JS类型,包括布尔值,null,数字,对象,数组*/
                    data = data === "true" ? true :
                    data === "false" ? false :
                    data === "null" ? null :
                    // Only convert to a number if it doesn't change the string 
                    +data + "" === data ? +data :
                    /*rbrace = /(?:{[sS]*}|[[sS]*])$/,*/
                    rbrace.test(data) ? jQuery.parseJSON(data) :
                    data;
                } catch (e) { }
                // Make sure we set the data so it isn't changed later 
                jQuery.data(elem, key, data);
            } else {
                data = undefined;
            }
        }
        return data;
    }
  • 相关阅读:
    Vue动画操作
    js this
    flask 操作mysql的两种方式-sqlalchemy操作
    flask 操作mysql的两种方式-sql操作
    ansible批量加用户
    使用 WTForms 进行表单验证的例子
    flask开发用户管理系统wtf版
    [转]Python格式化输出
    scrapy中response.body 与 response.text区别
    flask开发表单
  • 原文地址:https://www.cnblogs.com/zhuji/p/7146653.html
Copyright © 2011-2022 走看看