从下面的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
感谢
答案 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);
答案 1 :(得分:1)
var duration = $('slide').data('ls').match( /slidedelay *: *(.*?);/ )[1];
它返回第一个匹配的字符串,因此如果您需要它作为数字,则需要使用parseInt()。
答案 2 :(得分:0)
试试这个:
1
JS:
<div class="slide" data-ls="slidedelay:14500; transition2d: all;"></div>
答案 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'));
});