Come faccio ad aggiungere una tabella < > usando Element con Prototype in IE6? [chiuso]

StackOverflow https://stackoverflow.com/questions/130843

  •  02-07-2019
  •  | 
  •  

Domanda

Utilizzo del prototipo 1.6 "nuovo elemento (...)" Sto cercando di creare una tabella < > elemento con a < thead > e < tbody > ma non succede nulla in IE6.

var tableProto = new Element('table').update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

Sto quindi cercando di iniettarne copie in questo modo:

$('div.question').each(function(o) {
  Element.insert(o, { after:$(tableProto.cloneNode(true)) });
});

La mia attuale soluzione è creare un < div > invece di una tabella < > elemento, quindi " aggiorna " con tutto l'HTML della tabella.

Come si fa con successo?

È stato utile?

Soluzione

A quanto pare, non c'è niente di sbagliato nel codice di esempio che ho fornito nella domanda: funziona perfettamente in IE6. Il problema che stavo affrontando è che stavo anche specificando una classe per la tabella < > elemento nel costruttore in modo errato, ma omesso dal mio esempio.

Il " reale " il codice era il seguente e non è corretto:

var tableProto = new Element('table', { class:'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

Funziona correttamente in Firefox, ma fallisce in IE6 perché è sbagliato .

Il modo corretto di aggiungere attributi a un elemento tramite questo costruttore è fornire stringhe, non solo nomi di attributi. Il seguente codice funziona in entrambi i browser:

var tableProto = new Element('table', { 'class':'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');

Si è verificato un errore dovuto a " class " essendo una parola riservata in JavaScript. Doh!

Lascia che questa sia una lezione per coloro che non forniscono il loro codice reale!

Altri suggerimenti

Se il metodo prototipo. In IE, .innerHTML di un elemento tabella è di sola lettura .

Fonte:

http: // webbugtrack .blogspot.com / 2007/12 / bug-210-no-innerHTML-support-on-tables.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top