Para empezar, debemos tener en cuenta que han de tener algún atributo o patrón común para llamarlos a todos, y que no lo tengan el resto de elementos sobre los que no debemos hacer la función (igual hacemos siempre, en realidad no es nada nuevo), por ejemplo:
Tengo 5 DIVs sobre los que quiero realizar un cambio de color de fondo, pero solo a los pares, dejando al resto sin afectar.
Tendríamos algo así:
HTML
[…]
[…]
CSS
width: 150px;
height: 150px;
float: left;
background: red;
margin: 5px;
}
JAVASCRIPT
$(«div»).each(function(indice) {
if (indice%2 == 0)
$(this).css(«background», «green»);
});
});
De este modo tendríamos en un principio, según vemos en el CSS, que todos los DIVs son rojos, pero tal y como hemos realizado la función each, solo los pares aparecen de color verde (el índice empieza en 0).
Sin duda es una función muy útil en muchos aspectos, y que podemos usar como hemos dicho en operaciones sobre formularios, tablas, listas, o también en plugins como datepicker para operaciones sobre los días, con el plugin de Google Maps sobre los lugares, o en cualquier situación en la que necesitemos recorrer todas las apariciones de un selector para realizar una determinada función.
1 comentario
Hola me gustaría saber como implementar eso en un datapicker, te pongo un ejemplo de mi caso por si me puedes ayudar.
Quiero que mi calendario me marque 2 días y 3 sin marcar así durante todo el calendario, ya que es un programa de turnos de trabajo, lo que he conseguido hacer es poder marcar algún día ya preprogramado y por eso me gustaria aplicar tu funcion a mi datapicker. te pongo mi programacion hasta ahora:
$(function() {
var events = [’15-1-2014′, ’02-5-2014′, ’17-6-2014′, ’17-5-2014′];
//Array para dar formato en español
$.datepicker.regional[‘es’] =
{
closeText: ‘Cerrar’,
prevText: ‘Previo’,
nextText: ‘Próximo’,
monthNames: [‘Enero’,’Febrero’,’Marzo’,’Abril’,’Mayo’,’Junio’,
‘Julio’,’Agosto’,’Septiembre’,’Octubre’,’Noviembre’,’Diciembre’],
monthNamesShort: [‘Ene’,’Feb’,’Mar’,’Abr’,’May’,’Jun’,
‘Jul’,’Ago’,’Sep’,’Oct’,’Nov’,’Dic’],
monthStatus: ‘Ver otro mes’, yearStatus: ‘Ver otro año’,
dayNames: [‘Domingo’,’Lunes’,’Martes’,’Miércoles’,’Jueves’,’Viernes’,’Sábado’],
dayNamesShort: [‘Dom’,’Lun’,’Mar’,’Mie’,’Jue’,’Vie’,’Sáb’],
dayNamesMin: [‘Do’,’Lu’,’Ma’,’Mi’,’Ju’,’Vi’,’Sa’],
dateFormat: ‘dd/mm/yy’, firstDay: 1,
initStatus: ‘Selecciona la fecha’, isRTL: false};
$.datepicker.setDefaults($.datepicker.regional[‘es’]);
$(«#datepicker»).datepicker({
beforeShowDay: function(date) {
var current = $.datepicker.formatDate(‘dd-m-yy’, date);
return jQuery.inArray(current, events) == -1 ? [true, »] : [true, ‘ui-state-hover’, ‘ui-state-highlight’];
}
});
});