2016-04-21 1 views
4

J'ai fait un petit script dans HTA dans lequel il lit des informations à partir de fichiers texte et affiche les informations à l'écran. J'ai une table avec une ligne d'en-tête.javascript changer la couleur d'une ligne ajoutée dynamiquement

<table cellspacing="2" cellpadding="2" border="1" id="TablaResultados" style="font-size:10;"> 
    <tr bgcolor="#cd0041" align="center" style="color:white;"> 
    <th>Fecha</th> 
    <th>Id Evento</th> 
    <th>Tipo Evento</th> 
    <th>Ubicacion</th> 
    <th>Nombre</th> 
    <th>Apellido</th> 
    <th>Comentarios</th>  
    </tr> 
</table> 

et dans ce tableau ajouter dynamiquement des lignes de l'info que j'ai lu à l'aide de javascript

function AgregarFila(Datos) { 
    var table = document.getElementById("TablaResultados"); 
    var ArrDatos = Datos.split("@"); 
    var row = table.insertRow(1); 
    var LargoArreglo = ArrDatos.length; 

    for (var i = 0; i < LargoArreglo; i++){ 
    var cell1 = row.insertCell(i); 
    cell1.innerHTML = ArrDatos[i]; 
    cell1.style.backgroundColor = "#99cc00"; 
    } 
} 

toutes les N lignes que je dois effacer la couleur des lignes à blanc, et je me sers de ce

function TablaABlanco() { 
    var table = document.getElementById("TablaResultados"); 
    var rows = table.getElementsByTagName("tr"); 

    for (var i = 1; i < rows.length; i++) { 
    rows[i].style.backgroundColor = "#ffffff"; 
    } 
} 

Mon problème est qu'il ne change pas la couleur des lignes. Je sais que la fonction TablaABlanco fonctionne parce que si je lance le for loop à partir de zéro, il change la couleur de l'en-tête de la table précédente.

Je crois que je pourrais avoir besoin de vérifier quelque chose d'autre pour valider les nouvelles lignes mais j'ai été googling avec aucune chance.

+0

Où la fonction TablaABlanco est appelée? –

+0

avant d'ajouter une ligne avec "AgregarFila" –

+0

@CesarLopez Votre problème est donc que TablaABlanco ne transforme pas les nouvelles lignes en blanc? – Rickkwa

Répondre

2

Le problème est que dans AgregarFila, vous définissez chaque cellule pour avoir une couleur d'arrière-plan. Dans TablaABlanco, vous définissez la ligne comme étant blanche. Le style de la cellule est prioritaire et remplace le style que vous appliquez à la ligne. Par conséquent, au lieu de changer la couleur d'arrière-plan de chaque cellule, vous devez modifier la couleur d'arrière-plan de la ligne lorsque vous l'ajoutez.

function AgregarFila(Datos) { 
    var table = document.getElementById("TablaResultados"); 
    var ArrDatos = Datos.split("@"); 
    var row = table.insertRow(1); 
    row.style.backgroundColor = "#99cc00"; 

    var LargoArreglo = ArrDatos.length; 
    for (var i = 0; i < LargoArreglo; i++){ 
     var cell1 = row.insertCell(i); 
     cell1.innerHTML = ArrDatos[i]; 
    } 
} 
+0

Ok .. laissez-moi faire un test rapide ... –

+0

truc! Je ne savais pas que la cellule avait la priorité sur la ligne –

+0

Merci Rickkwa! –