2010-11-09 3 views
0
var row = document.getElementById('my_id'); 
var newRow = row.parentNode.insertRow(); 
newRow.Id = myCounter; 

var newCell2 = newRow.insertCell(0); 
newCell2.innerHTML = 'some text'; 

J'essaie de créer une nouvelle ligne et une nouvelle cellule dans cette rangée. Le code ci-dessus fonctionne en FF mais pas en IE. Qu'est-ce que je fais mal?innerHTML fonctionne dans FF mais pas dans IE7

Répondre

0

Peu importe. IE attend document.CreateElement ("td") (et aussi pour tr). J'ai ajouté cela et cela a fonctionné.

1
var newRow = row.parentNode.insertRow(); 

Should beinsertRow(-1) si vous voulez dire à ajouter à la fin du parent.

aussi faire attention: le parentNode d'un row sera un <tbody>, même si vous ne pas inclure une balise <tbody>. En effet, au format HTML, <tbody> est considéré comme une balise de début facultative et implicite si elle est omise avant un <tr>. Si vous vous attendiez à ce que le parentNode soit le <table> vous pourriez être confus.

(XHTML parse tables plus sensiblement.)

Cela dit, votre code fonctionne pour moi dans IE (donné un balisage approprié et un myCounter valide). Publier un cas de test défaillant?

Questions connexes