Aujourd'hui, j'ai rencontré un problème à faire les choses. J'ai essayé d'ajouter dynamiquement plusieurs lignes de données à une table et j'ai d'abord défini une table:
123456 | <Bile> <Thead> </ Head> <TBODY ID = FileList> </tbody> </Ball> |
Puis en javascript:
12345 | pour (var i dans les entrées) {... var filetable = document.getElementById ('FileList'); filetable.innerhtml + = '<tr> <td> 111 </td> <td> 222 </td> </tr>';} |
Il n'y a aucun problème à Firefox, mais il sera impossible de le mettre sous IE. J'ai demandé à mes collègues + fouillé et j'ai constaté que les attributs innerhtml de ces éléments sont en lecture seule et ne peuvent pas être opérés directement sous IE. Mais il n'y a pas de solution. L'innerhtml de TD peut toujours être utilisé. Le code ci-dessus peut être modifié comme ceci:
123456789101112 | pour (var i dans les entrées) {... var filetable = document.getElementById ('FileList'); var tr = document.CreateElement ('tr'); var td1 = document.createElement ('td'); td1.innerhtml = '111'; var td2 = document.createElement ('td'); td2.innerhtml = '222'; Tr.ApendChild (TD1); Tr.ApendChild (TD2); FileTable.ApendChild (tr);} |
Vous pouvez d'abord utiliser la méthode CreateElement de DOM pour créer TR et TD, puis effectuer des opérations correspondantes sur l'InnerHTML de TD, et enfin utiliser la méthode APPEDCHILD pour ajouter les éléments créés à l'arborescence Dom. De cette façon, il peut fonctionner normalement sous IE. Il convient de noter que si votre table n'a pas de TBOD, il le fait:
1 | <Table ID = FileList> </ Table> |
À l'heure actuelle, vous ne pouvez pas utiliser la méthode APPEDCHILD directement sur la table, car l'élément de table sous IE6 ne prend pas en charge la méthode APPEDCHILD (IE8 semble l'avoir déjà pris en charge).
Certaines personnes sur Internet ont également proposé d'utiliser insertrow () et d'autres méthodes pour le faire, mais cette méthode a des problèmes de compatibilité avec différents navigateurs (Insertrow (-1) est requis dans Firefox), il est donc inutile.
BTW, bien que j'avais lu beaucoup d'informations JS consciemment auparavant, j'ai quand même réalisé la vérité. Maintenant, je commence à être occupé et je suis calme dans mes études