2017-05-12 4 views
0

Ich versuche, alle td und vergleichen Sie jede td Wert zu einer Zeichenfolge. aber mein Code liest nur die erste td von jedem tr.Lesen Sie alle Td-Werte mit Javascript

Hier ist mein HTML:

<table border="2px" id="tab"> 
<tr> 
<td>color</td> 
<td> a </td> 
<td> font</td> 
<td>123</td> 
</tr> 

<tr> 
<td>font</td> 
<td> color </td> 

</tr> 

<tr> 
<td>a</td> 
<td> color</td> 
<td> font</td> 

</tr> 

<tr> 
<td>font</td> 

</tr> 

</table> 

Mein js Code:

var t=["color","font","a"]; 

function color() 
{ 
    var colr=0; 
    var tab=[]; 
    var table = document.getElementById("tab"); 
    var len=table.rows.length; 

for (var i = 0; i< len; i++) 
{ 

         for (var j=0; j<table.rows[i].cells.length; j++) 

          { 

           tab[j]= table.rows[i].cells[j].innerHTML; 

           // alert(tab[j]); 
           if(tab[j]== t[0]) 
           { colr++;} 
          } 
    } 

alert(colr); 
    } 

Was bin ich?

+0

können Sie jquery verwenden? –

+0

@ AlejandroPérezFals, nein arbeite mit js – Narjess

Antwort

0

Der Abstand in der <td> ist verwirrend mit den Vergleichen. Als Ihr Code liegt, sind Sie " color"-"color" zu vergleichen und das ist falsch zurückkehrt, so da Sie nur, wenn es darum, dass colr Index 1.

zu steigen Sie werden die Räume, um Streifen aus müssen, um vergleichen richtig, Beispiel JSFiddle hier: https://jsfiddle.net/76q3aro3/

+0

Vielen Dank, es funktioniert! – Narjess