amsul datepicker fetch x和; y坐标

时间:2014-11-18 02:58:55

标签: javascript jquery

我正在使用amsul datepicker javscript库。 我想要所选日期的事件对象。 目前我的代码是

$('#inputDate')
.attr('data-value', "2014-5-14");
DatepickerObject = $('#inputDate').pickadate({
'today' : '',
'close' : '',
'clear' : '',
onOpen : function() {
},
onSet : function() {
},
});

我想获得选定的对象触摸位置。例如,如果我选择任何日期,我想要所选日期的坐标。即x&年。请帮帮我。 即如果假设默认选择任何日期,我想要x& y职位。

5 个答案:

答案 0 :(得分:2)

使用.split按分隔符(在您的情况下为逗号)拆分字符串,然后获取令牌并使用parseInt将其转换为number并将其添加到阵列。



var arr = ["2014,11,6","2014,12,6"];
var result = [];
var tokens = null;
for (var i = 0; i < arr.length; i++) {
  tokens = arr[i].split(',');
  result.push(parseInt(tokens[0], 10)); //first word
  result.push(parseInt(tokens[1], 10) - 1); //2nd
  result.push(parseInt(tokens[2], 10)); //3rd
}
alert(result.join(' '));
&#13;
&#13;
&#13;

答案 1 :(得分:2)

让我们一步一步。这是最初的数组:

var arr = ["2014,11,6","2014,12,6"]

首先,在逗号上拆分字符串:

var components = arr.map(function(s) { return s.split(/,/); }); 
//=> [ [ "2014", "11", "6" ], [ "2014", "12", "6" ] ]

现在将字符串转换为数字并减少每个三元组的中间字符:

var decremented = components.map(function(a) { return [a[0]-0,a[1]-1,a[2]-0]; });
//=> [ [ 2014, 10, 6 ], [ 2014, 11, 6 ] ]

最后,将其展平为一个连续数组而不是两个数组的数组:

var flattened = [].concat.apply([], decremented);
//=> [ 2014, 10, 6, 2014, 11, 6 ]

答案 2 :(得分:0)

可以使用map()功能。例如:

var ar = ["2014,11,6","2014,12,6"],
    newArr = [];
ar.map(function(obj){
    var temp = obj.split(',');
    newArr.push(parseInt(temp[0], 10));
    newArr.push(parseInt(temp[1], 10) - 1);
    newArr.push(parseInt(temp[2], 10));
});
console.log(newArr);

答案 3 :(得分:0)

您可以在每个缩小步骤中使用Array.reduce()

  1. 使用String.split()将每个字符串基于逗号分成三部分,
  2. 将每个部分添加到最终数组中,同时从中间部分减去一个。
  3. var data = ["2014,11,6","2014,12,6"];
    
    var result = data.reduce(function(final, current) {
      var parts = current.split(',');
      final.push(+parts[0], parts[1]-1, +parts[2]);
      return final;
    }, []);
    
    console.log(result);

答案 4 :(得分:0)

这是第一个答案的变化,更快更清晰。

var arr = ["2014,11,6","2014,12,6"];
var result = [];
arr.forEach(function(item) {
    item.split(",").forEach(function(x){result.push(parseInt(x))});
});