首頁 > web前端 > js教程 > 使用jQuery取得data-的自訂屬性_jquery

使用jQuery取得data-的自訂屬性_jquery

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-05-16 15:33:07
原創
1614 人瀏覽過

廢話少說,先上程式碼

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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 &#63; String(attr.value) : null;

            }

            if (decode(encode(attr.name.substring(5))) == "name") {

              dataset[decode(encode(attr.name.substring(5)))] = attr.value != null &#63; 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-屬性來賦值。

取得:

1

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

登入後複製

賦值:

1

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

登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板