2012-04-12 4 views
1

Ich mache eine Seite, die die Variable meiner Wahl innerhalb einer Tabelle anzeigen sollte. Ich habe das gleiche zweimal gemacht, habe die IDs geändert und cuch, aber nur einer funktioniert. Ich verbrachte eine Stunde damit, über die Syntax zu schauen und die Arbeit neu zu verteilen, aber es hilft einfach nicht. Hier sind die drei wichtigsten Teile des Codes:Javascript/html Hilfe! Sollte einfach sein

var NewGlad = new Array("Jokomopo","Etony","Roy"); 
var BestGlad = new Array("Johnny","Cod","Billy"); 

function UpdateTable(){ 

    document.getElementById("0New").innerHTML = "<a href='" +NewGlad[0]+ "'>" + NewGlad[0] + "</a>"; 


    document.getElementById("0Best").innerHTML = "<a href='" +BestGlad[0]+ "'>" + BestGlad[0] + "</a>"; 

} 

// Die obige Funktion IS ausgeführt OnLoad.

Hier ist der html, ich zeige Ihnen nur die Tabellenzeile, mit denen wir es zu tun:

<tr> 

<td class="NewestGlads" id="0New"> 
fgggrf 
</td> 

<td class="BestGlads" id="0Best"> 
fgggrf 
</td> 

</tr> 

Nur die NewestGlads td aktualisiert wird. Die andere zeigt immer noch "fgggrf"

+2

Ich sehe nicht ein Problem (FF11). Es funktioniert gut: http://jsfiddle.net/8dsCa/ – mshsayem

+2

Könnte ein Problem mit Ihrem Browser und diesen numerischen Präfix ID-Attribute sein. Siehe http://stackoverflow.com/a/79022/283366 – Phil

+0

Ja, funktioniert gut für mich auch –

Antwort

2

Sagen Sie nicht, dass dies einfach sein sollte. Wenn es leicht wäre, würden Sie uns nicht nach der Antwort fragen. Sie Code könnte eine Verfeinerung verwenden:

var UpdateTable = function() { 
     "use strict"; 
     var NewGlad = ["Jokomopo", "Etony", "Roy"], 
      BestGlad = ["Johnny", "Cod", "Billy"]; 
     document.getElementById("New0").innerHTML = "<a href='" + NewGlad[0] + "'>" + NewGlad[0] + "</a>"; 
     document.getElementById("Best0").innerHTML = "<a href='" + BestGlad[0] + "'>" + BestGlad[0] + "</a>"; 
    }; 

Ich änderte Ihre Referenzen, so dass sie mit einem Buchstaben beginnen, statt einer Nummer. Dein HTML muss sich ändern, um zu passen. Ich habe nie Kennungen gesehen, die mit einer Zahl beginnen, und ich glaube, dass es eine schlechte Konvention ist, die fehleranfällig im Browser sein könnte. Versuchen Sie dies stattdessen, indem Sie die UpdateTable-Funktion aufrufen. Sie können dies auch, indem sie den Code ohne Aufruf wie folgt ausführen:

var UpdateTable = (function() { 
     "use strict"; 
     var NewGlad = ["Jokomopo", "Etony", "Roy"], 
      BestGlad = ["Johnny", "Cod", "Billy"]; 
     document.getElementById("New0").innerHTML = "<a href='" + NewGlad[0] + "'>" + NewGlad[0] + "</a>"; 
     document.getElementById("Best0").innerHTML = "<a href='" + BestGlad[0] + "'>" + BestGlad[0] + "</a>"; 
    }()); 
-1

Die innerHTML falsch ist.

Sollte

document.getElementById("0New").innerHTML = "<a href=\"" +NewGlad[0]+ "\">" + NewGlad[0] + "</a>"; 
document.getElementById("0Best").innerHTML = "<a href=\"" +BestGlad[0]+ "\">" + BestGlad[0] + "</a>"; 

D.h. doppelte Anführungszeichen um den href lesen.

Auch die IDs sollten mit einem Buchstaben beginnen. Ändern Sie sie auf New0 und Best0

+0

Einfache Anführungszeichen und doppelte Anführungszeichen sind in XML und HTML pro W3C gültig, solange das Anfangsanführungszeichen mit seinem schließenden Partner übereinstimmt ein gegebenes Quote-Paar. – austincheney

0

ich Ihren Code nur verwendet, und das gab mir das richtige Ergebnis Sie gehen für

<html> 
<head> 
<script> 
    var NewGlad = new Array("Jokomopo","Etony","Roy"); 
    var BestGlad = new Array("Johnny","Cod","Billy"); 

    function UpdateTable(){ 
     document.getElementById("0New").innerHTML = "<a href='" +NewGlad[0]+ "'>" + NewGlad[0] + "</a>"; 
     document.getElementById("0Best").innerHTML = "<a href='" +BestGlad[0]+ "'>" + BestGlad[0] + "</a>"; 

    } 
</script> 
</head> 
<body onload="UpdateTable();"> 
<table> 
<tr> 
    <td class="NewestGlads" id="0New">fgggrf</td> 
    <td class="BestGlads" id="0Best">fgggrf</td> 
</tr> 
</table> 
</body> 
</html> 
Verwandte Themen