2013-07-05 86 views
-3

我有以下标记:创建一个数组,并得到最低和最高价值

<figure data-item="0"> ... </figure> 
<figure data-item="1"> ... </figure> 
<figure data-item="2"> ... </figure> 
<figure data-item="3"> ... </figure> 
<figure data-item="4"> ... </figure> 
... 

等。

我需要的是获得最高和最低的数据项目价值。

我开始与此:

var arr = [3, 36, 66, 2, 7]; 
max = 0; 

$.each(arr, function(k, v) { 
    if (v > max) max = v; 
}); 

console.log(max); 

但我不知道如何创建这样的

+0

那么,你尝试过什么?我们不只是给你答案。作为一个提示,你可以从['.fn.map'](http://api.jquery.com/map/)开始。 –

+0

无序,这似乎是在您的示例中排序。 – Gabe

+0

@加贝只是一个例子 – user2433958

回答

1

DEMO

var myArray = $('figure').map(function(){ 
    return $(this).data('item'); 
}).get(); 

var maxValue = Math.max.apply(null, myArray); 
var minValue = Math.min.apply(null, myArray); 
+0

此脚本正在为我打印'Infinity' – user2433958

+1

jsfiddle工作,然后提供您的相关代码。我认为你不会为数字铸造价值。但是作为数据API自动将值转换为相应的类型,我真的不知道你在做什么? –

+0

你是对的。我在我的代码中发现了一个错误。谢谢! – user2433958

1

你可以做这样的事情来获得分钟的数组和最大值

var min = 999; 
var min = 0; 

$("figure").each() 
{ 
    var value = $(this).data("item"); 
    if(value < min) min = value; 
    if(value > max) max = value; 
} 

alert(min); 
alert(max); 
+0

但最小值最大值将从数据库中获得。 – user2433958

+0

那么现在还不清楚。你有没有存储在DOM中的值? –

+0

@ user2433958:那么'

'元素的要点是什么?你的真实*问题是什么?你真的*试图做什么? –

0

要从您的元素中创建一个数组,您可以使用.map

var arr = $('figure').map(function(){ 
    return $(this).data('item'); 
}).get(); 

var max = 0; 

$.each(arr, function(k, v) { 
    if (v > max) max = v; 
}); 

console.log(max); 
相关问题