Cita:
Iniciado por zerokilled yo le daria otro enfoque al codigo, especialmente a la inicializacion del array. yo tu me olvido de comenzar el indice por 1 porque trae mas problema que beneficio. intenta la siguiente modificacion.
Código:
var mensajesp=new Array();
function seleccionaMensajePrivadoParaBorrar(id) {
var donde=document.getElementById("aseleccion"+id);
var total=document.getElementById("cuantosMensajesSeleccionados");
if(donde.value==0) {
mensajesp.push(id);
total.value=mensajesp.length;
donde.value=1;
document.getElementById("selecsionostia"+id).style.backgroundColor="yellow";
} else {
for(i=0;i<mensajesp.length;i++) {
if(mensajesp[i]==id){
mensajesp.splice(i, 1);
break; // como menciona jackson666, si los IDs son unicos, no hay porque seguir recorriendo el array;
}
}
document.getElementById("selecsionostia"+id).style.backgroundColor="";
total.value=mensajesp.length;
donde.value=0;
}
}
function borrarMensajesSeleccionados() {
var total=document.getElementById("cuantosMensajesSeleccionados");
if (!mensajesp.length) { alert('No hay mensajes seleccionados'); } else {
var todostoditos=mensajesp.join(",");
var user=top.document.getElementById("nombreUsuario").value;
}
}
Wow! Tu código funciona de miedo. Le he añadido todo el código que no he puesto (por irrelevante en el problema) y funciona a las mil maravillas. No conocía el .join con el que me ahorro el for.
Tampoco conocía splice, que estoy buscando ahora mismo en google para saber qué carajos hace.
Y tampoco el .push, que veo que añade un elemento en el array.
Con este código todo se hace de manera ordenada, eres un fenómeno.Mil millones de gracias!