Obtenga los valores más altos y más bajos de un cierto atributo en jQuery o Javascript

Tengo los siguientes divs:

test
test
test
test
test
test

¿Cómo obtener el ID más alto (5) y el ID más bajo (1) en jQuery o Javascript?

 function minMaxId(selector) { var min=null, max=null; $(selector).each(function() { var id = parseInt(this.id, 10); if ((min===null) || (id < min)) { min = id; } if ((max===null) || (id > max)) { max = id; } }); return {min:min, max:max}; } minMaxId('div'); // => {min:1, max:5} 

http://jsfiddle.net/qQvVQ/

Primero necesita crear una matriz que contenga todos los valores de id , luego use Math para obtener la más alta / más baja:

 var ids = $(".maindiv[id]").map(function() { return parseInt(this.id, 10); }).get(); var highest = Math.max.apply(Math, ids); var lowest = Math.min.apply(Math, ids); 

Ejemplo de violín

Tenga en cuenta que se requiere el selector de atributo [id] ; de lo contrario, se supone 0 para el valor faltante.

 var min = Number.MAX_VALUE, max = Number.MIN_VALUE; $(".maindiv").each(function () { var id = parseInt(this.id, 10); if (id > max) { max = id; } if (id < min) { min = id; } }); 

Cree una variable global y compárela con cada elemento usando Math.max dentro de un bucle.

 var maxval = Number.MIN_VALUE, minval = Number.MAX_VALUE; $('div').each(function () { var num = parseInt(this.id, 10) || 0; // always use a radix maxval = Math.max(num, maxval); minval = Math.min(num, minval); }); console.log('max=' + maxval); console.log('min=' + minval); 

http://jsfiddle.net/mblase75/gCADe/

Puede usar la función de ordenar para hacerlo.

 function arrayify(obj){ return [].slice.call(null,obj); } var all = arrayify(document.querySelectorAll('div[id]')); var max = all.sort().pop(); var min = all.sort().reverse().pop(); 

Esto es mucho más fácil que usar jQuery

Debe usar datos en lugar de id para esto.

 
test
test
test
etc.

Editar: acorté mi respuesta a favor de la respuesta aceptada de Rory McCrossan más arriba.

 var valArray = []; $('.maindiv').each(function(){ valArray.push(parseInt($(this).attr('id'), 10)); }) valArray.sort(function(a, b) { return a - b }) valArrayp[0] // lowest valArrayp[valArrayp.length - 1] // highest` 

No lo he probado, debería funcionar