Problemas con JavaScript
Amigos todos tengo las siguientes funciones:
function cambiaEstilo(clase){
var tds = document.body.getElementsByTagName("td");
var spans = document.body.getElementsByTagName("span");
var z;
for (var i=0;i<tds.length;i++){
var nombre = tds[i].id;
var j = nombre.indexOf("td_");
if (clase == nombre && j == 0){
if (tds[i].className == "blocksm1"){
tds[i].className = "blocksm2";
}
for (var x=0;x<spans.length;x++){
if (spans[x].className==nombre){
spans[x].className = "menupasivo";
}
}
}
}
for (var i=0;i<tds.length;i++){
var nombre = tds[i].id;
var j = nombre.indexOf("td_");
if (clase == nombre && j == 0){
if (tds[i].className=="blocksm2"){
alert("Td :" + tds[i].id);
}
}
}
}
function verificaEstilo(clase){
var tds = document.body.getElementsByTagName("td");
var spans = document.body.getElementsByTagName("span");
for (var i=0;i<tds.length;i++){
var nombre = tds[i].id;
var j = nombre.indexOf("td_");
if (j == 0){
if (tds[i].className=="blocksm2"){
tds[i].className="blocksm1";
for (var j=0;j<spans.length;j++){
var nombre_span = spans[j].className;
var x = nombre_span.indexOf("td_");
if (spans[j].className=="menupasivo" && x == 0){
spans[j].className = "menu";
}
}
}
}
}
cambiaEstilo(clase);
}
Estas funciones debiesen de permitir cambiar el esilo de los td que pertencen a un menu, pero no se porque extrania razon lo esta haciendo por favor necesito de su ayuda
De antemano muchas gracias
function cambiaEstilo(clase){
var tds = document.body.getElementsByTagName("td");
var spans = document.body.getElementsByTagName("span");
var z;
for (var i=0;i<tds.length;i++){
var nombre = tds[i].id;
var j = nombre.indexOf("td_");
if (clase == nombre && j == 0){
if (tds[i].className == "blocksm1"){
tds[i].className = "blocksm2";
}
for (var x=0;x<spans.length;x++){
if (spans[x].className==nombre){
spans[x].className = "menupasivo";
}
}
}
}
for (var i=0;i<tds.length;i++){
var nombre = tds[i].id;
var j = nombre.indexOf("td_");
if (clase == nombre && j == 0){
if (tds[i].className=="blocksm2"){
alert("Td :" + tds[i].id);
}
}
}
}
function verificaEstilo(clase){
var tds = document.body.getElementsByTagName("td");
var spans = document.body.getElementsByTagName("span");
for (var i=0;i<tds.length;i++){
var nombre = tds[i].id;
var j = nombre.indexOf("td_");
if (j == 0){
if (tds[i].className=="blocksm2"){
tds[i].className="blocksm1";
for (var j=0;j<spans.length;j++){
var nombre_span = spans[j].className;
var x = nombre_span.indexOf("td_");
if (spans[j].className=="menupasivo" && x == 0){
spans[j].className = "menu";
}
}
}
}
}
cambiaEstilo(clase);
}
Estas funciones debiesen de permitir cambiar el esilo de los td que pertencen a un menu, pero no se porque extrania razon lo esta haciendo por favor necesito de su ayuda
De antemano muchas gracias
Hola Dhampir,
驴 por qu茅 usas document.BODY.GetElementsByTagName... ?
El elemento DOM-Model "BODY" no tiene ninguna funci贸n, solamente propiedades. GetElementsByTagName es funci贸n del elemento " DOCUMENT".
Elimina la extensi贸n BODY de tu c贸digo y veras. Adem谩s te recomendo la p谩gina web http://www.w3.org/TR/2002/PR-DOM-Level-2-HTML-20021108/html.html#ID-71555259
Saludos
Lobito
驴 por qu茅 usas document.BODY.GetElementsByTagName... ?
El elemento DOM-Model "BODY" no tiene ninguna funci贸n, solamente propiedades. GetElementsByTagName es funci贸n del elemento " DOCUMENT".
Elimina la extensi贸n BODY de tu c贸digo y veras. Adem谩s te recomendo la p谩gina web http://www.w3.org/TR/2002/PR-DOM-Level-2-HTML-20021108/html.html#ID-71555259
Saludos
Lobito
Gracias por tu ayuda esta super buena la pagina... pero en realidad me equivoque al colocar mal el ultimo mensaje, la funcion no me esta permitiendo cambiar el estilo de los tds y de los spans, alo mejor me debo estar cayendo en algo super facil pero como soy un novato en esto, no puedo encontrar cual sera el error si por favor alguien que vea lo sabe plis le agradecira su ayuda.
Hola Dhampir,
bueno, sin conocer tu c贸digo completo no se puede descubrir las faltas, pero al menos te cuento lo que me llama la atenci贸n en tu c贸digo.
Hay declaraciones de siempre las mismas variables 驴 Por qu茅 ? Adem谩s REDECLARAS tus variables "nombre" y "j" en tus bucles de FOR/NEXT en cada iteraci贸n! 驴 Por qu茅 te llenas tu memoria tanto ?
Yo declar铆a tus variables "tds" y "spans" una sola vez fuera de cada funci贸n, p煤blicas entonces, porque reflejan el estado de tu documento, no cambian nunca, las necesitas a cada rato, y por fin, porque tu programa ser铆a m谩s r谩pido.
En tu funci贸n "cambiaEstilo" usas las variables "nombre", "j", "i" m谩s de una vez, entonces estas variables yo declar铆a a los principios de esa funci贸n (como la variable "z" que nunca usaste). Es cierto que puedes declarar la variable de control de un bucle como "for (var i = 0;..." pero ya que necesitas la "i" varias veces...
Luego ser铆a mejor quitar todo que te complica tu programa para probar, si puedes cambiar el estilo de TODOS <td>. Si eso funciona en Firefox, puedes a帽adir poco a poco todas las cosas complicadas que te confunden en este momento.
A prop贸sito Firefox: Conoces el debugger que tiene este browser ? Usalo, es bueno y facilita la vida de programadores bastante.
Saludos
Lobito
bueno, sin conocer tu c贸digo completo no se puede descubrir las faltas, pero al menos te cuento lo que me llama la atenci贸n en tu c贸digo.
Hay declaraciones de siempre las mismas variables 驴 Por qu茅 ? Adem谩s REDECLARAS tus variables "nombre" y "j" en tus bucles de FOR/NEXT en cada iteraci贸n! 驴 Por qu茅 te llenas tu memoria tanto ?
Yo declar铆a tus variables "tds" y "spans" una sola vez fuera de cada funci贸n, p煤blicas entonces, porque reflejan el estado de tu documento, no cambian nunca, las necesitas a cada rato, y por fin, porque tu programa ser铆a m谩s r谩pido.
En tu funci贸n "cambiaEstilo" usas las variables "nombre", "j", "i" m谩s de una vez, entonces estas variables yo declar铆a a los principios de esa funci贸n (como la variable "z" que nunca usaste). Es cierto que puedes declarar la variable de control de un bucle como "for (var i = 0;..." pero ya que necesitas la "i" varias veces...
Luego ser铆a mejor quitar todo que te complica tu programa para probar, si puedes cambiar el estilo de TODOS <td>. Si eso funciona en Firefox, puedes a帽adir poco a poco todas las cosas complicadas que te confunden en este momento.
A prop贸sito Firefox: Conoces el debugger que tiene este browser ? Usalo, es bueno y facilita la vida de programadores bastante.
Saludos
Lobito
