2014-02-14 29 views
0

我坐标我的属性数据坐标片串入两个变量

<a class="cor" href="#" data-coordinates="37.650621, 55.740887"></a> 

我需要切片他们分成两个变量,这样

<script> 

//this must contain coordinate which is before "," 
var firstCor = $('.cor').attr('data-coordinates'); 

//this must contain coordinate which is after "," 
var lastCor = $('.cor').attr('data-coordinates'); 


</script> 

那么,我必须从两个变量一个数据坐标

回答

2

使用.split()

var cor = $('.cor').data('coordinates').split(','); // creates an array of result 
var firstCor = cor[0].trim(); // access 1st value index starts from 0 
var lastCor = cor[1].trim(); //.trim() to remove empty spaces from start and end 

.data()

.trim()


更新

对于旧的浏览器支持使用

$.trim(),而不是.trim()

var firstCor = $.trim(cor[0]); 
var lastCor = $.trim(cor[1]); 

或使用String.prototype.trim polyfill

+0

留下第二值 – epascarello

+0

@epascarello使用'.trim()' –

+0

仅供参考,如果你需要一个空间用这个答案支持IE8,你需要使用polyfill来修剪 – epascarello

1

使用.split(),如果你想在浮动使用转换parseFloat

var arr = $('.cor').data('coordinates').split(','); 
var firstCor = $.trim(arr[0]); 
var lastCor = $.trim(arr[1]); 
+0

在第二个值上留下一个空格 – epascarello

+0

@epascarello,使用'$ .trim()'更新了答案。由于'.trim()'在旧版浏览器中不受支持 – Satpal

1
var co = $('.cor').data('coordinates'); 

var temp=new Array(); 

temp=co.split(","); 

var firstCor =temp[0]; 

var lastCor = temp[1]; 
1

另一种方法是使用正则表达式

var cords = $('.cor').data('coordinates').match(/-?\d+\.\d+/g); 

导致阵列与两个字符串

["37.650621", "55.740887"] 

如果你想con他们对用vert数字和浏览器支持阵图()

var cords = $('.cor') 
       .data('coordinates') 
       .match(/-?\d+\.\d+/g) 
       .map(function(a){ return parseFloat(a); }); 

导致

[37.650621, 55.740887]