jQuery获取数据属性的字符串属性

时间:2015-08-23 02:36:52

标签: jquery custom-data-attribute

从下面的data-ls属性中获取值<div class="slide" data-ls="slidedelay:14500; transition2d: all;"></div> 的最有效方法是什么?我之前从未见过单个数据属性的多个属性,我正在寻找更快的方法来提取值,而不是依赖于数据属性属性的顺序。

var duration = $('.slide').data('ls').split(';');
duration = duration[0].split(':');
console.log("duration: " + duration[1]);

import Data.List

lcms :: [Int] -> Int
lcms xs = foldl' lcm 1 xs

感谢

4 个答案:

答案 0 :(得分:3)

如何对您的split var进行循环,然后检查key是否slidedelay确定。

e.g。

var duration = $('.slide').data('ls').split(';');
var slidedelay = "";
if(duration) {
    $.each( duration, function( key, value ) {
        val = value.split(':');
        if(val) {
          if(val[0] == "slidedelay") {
            slidedelay = val[1];
            return false;  // then break loop 
          }
        }
    });
}


console.log("duration: " + slidedelay);

Fiddle

答案 1 :(得分:1)

var duration = $('slide').data('ls').match( /slidedelay *: *(.*?);/ )[1];

Regular expression visualization

Debuggex Demo

它返回第一个匹配的字符串,因此如果您需要它作为数字,则需要使用parseInt()。

答案 2 :(得分:0)

  

试试这个:

1
  

JS:

<div class="slide" data-ls="slidedelay:14500; transition2d: all;"></div>

JSFIDDLE https://jsfiddle.net/Grald/cgy5drL4/1/

答案 3 :(得分:0)

简单快捷的方式: JSnippet Demo

function getFrom(selector) {
    var val = null;
    var x = $(selector)[0]
             .getAttribute("data-ls")
             .split(' ')[0]
             .split(':');
    if (x.length > 1) val = parseInt(x[1]);
    return val;
}

$(function() {

    console.log(getFrom('.slide'));

});