Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/02/2006, 20:32
califa010
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 19 años, 3 meses
Puntos: 5
Buenas.

A existe, es una variable global y la función puede leerla sin problemas. Aunque es cierto que la primera vez que se ejecute va a tener valor "undefined". Lo que hace falta es inicializarla, por ejemplo asignandole 0. Esto además va a impedir que entre en el if (a>0) la primera vez.

El problema que tenía el script está en los for (en los dos). A menos que sea necesario, por experiencia propia, siempre evita errores difíciles de rastrear empezar por 0 y hacer la comparación como < (en vez de <= ). (Muchas veces vas a estar referenciando elementos que internamente se indexan a partir de 0, con lo cual si te acostumbrás a hacerlo así, te ahorrás pasos; además, no tenés que estar sumando/restando en la parte condicional del for, etc: es más prolijo, legible y hasta lógico).

Bueno, cambiando esos detalles, a mí me funciona en FF e IE (entre paréntesis, el código original más innerHTML = "" andaba al pelo en FF, pero IE tiraba error; esa solución era más simple y elegante, pero lamentablemente, no se puede ignorar al IE, que suele ser bastante turrito)

Acá te dejo la parte modificada

Suerte
Califa

Código:
var a = 0;
function cantidad (id)
{
	//alert(a);
	if (document.forms[0].pjs.value != 0)
	{
		var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
		temp = document.getElementById("raw");
		if (a>0)
		{
			for(w=0;w<a;w++)
			{
				tbody.removeChild(document.getElementById('raw'+w) );
			}
		}
		for (a=0;a<document.forms[0].pjs.value;a++)
		{