|
| htmlentities og createTextNode, removeChil~ Fra : Leif Neland |
Dato : 11-07-08 05:58 |
|
To problemer:
Som resultat af noget ajax, tilføjer jeg nogle rækker til en tabel
var tblB = document.getElementById("leveringsadresser");
....
var l=i.split("|")
var row = document.createElement("tr");
for (m=0;m<l.length;m++) {
var cell = document.createElement("td");
var txtCell = document.createTextNode(l[m]);
cell.appendChild(txtCell);
row.appendChild(cell);
};
tblB.appendChild(row);
Problem 1: htmlentities (eller hvad det nu hedder) bliver udskrevet som
ø osv.
Skriver jeg den samme tekst som element.innerHTML=resultat bliver det
fint vist som ø og " "
Problem 2: De rækker jeg tilføjer er resultat af en søgning.
Hvis man laver en ny søgning, skal de tilføjede rækker erstattes af en
ny søgning. Men hele tabellen skal ikke slettes, de rækker, der ikke er
resultat af søgningen skal blive der.
Leif
| |
Stig Johansen (11-07-2008)
| Kommentar Fra : Stig Johansen |
Dato : 11-07-08 06:08 |
|
Leif Neland wrote:
> To problemer:
>
> Som resultat af noget ajax, tilføjer jeg nogle rækker til en tabel
>
> var tblB = document.getElementById("leveringsadresser");
> ...
> var l=i.split("|")
> var row = document.createElement("tr");
> for (m=0;m<l.length;m++) {
> var cell = document.createElement("td");
> var txtCell = document.createTextNode(l[m]);
> cell.appendChild(txtCell);
> row.appendChild(cell);
> };
> tblB.appendChild(row);
>
> Problem 1: htmlentities (eller hvad det nu hedder) bliver udskrevet som
> ø osv.
> Skriver jeg den samme tekst som element.innerHTML=resultat bliver det
> fint vist som ø og " "
Så brug innerHTML.
> Problem 2: De rækker jeg tilføjer er resultat af en søgning.
> Hvis man laver en ny søgning, skal de tilføjede rækker erstattes af en
> ny søgning. Men hele tabellen skal ikke slettes, de rækker, der ikke er
> resultat af søgningen skal blive der.
Hvis det var mig, ville jeg benytte en <div> til leveringsadresser, og
bygge/udskifte hele <table> via innerHTML i denne <div>.
At bygge nodes enkeltvis er noget langsommere end at 'streame' resultatet
ind i parseren via innerHTML.
--
Med venlig hilsen
Stig Johansen
| |
Leif Neland (11-07-2008)
| Kommentar Fra : Leif Neland |
Dato : 11-07-08 06:44 |
|
Stig Johansen skrev:
> Leif Neland wrote:
>
>> To problemer:
>>
>> Som resultat af noget ajax, tilføjer jeg nogle rækker til en tabel
>>
>> var tblB = document.getElementById("leveringsadresser");
>> ...
>> var l=i.split("|")
>> var row = document.createElement("tr");
>> for (m=0;m<l.length;m++) {
>> var cell = document.createElement("td");
>> var txtCell = document.createTextNode(l[m]);
>> cell.appendChild(txtCell);
>> row.appendChild(cell);
>> };
>> tblB.appendChild(row);
>>
>> Problem 1: htmlentities (eller hvad det nu hedder) bliver udskrevet som
>> ø osv.
>> Skriver jeg den samme tekst som element.innerHTML=resultat bliver det
>> fint vist som ø og " "
>
> Så brug innerHTML.
Jeg endte med
cell = document.createElement("td");
txtCell = document.createTextNode("");
cell.appendChild(txtCell);
cell.innerHTML = l[m];
>
>> Problem 2: De rækker jeg tilføjer er resultat af en søgning.
>> Hvis man laver en ny søgning, skal de tilføjede rækker erstattes af en
>> ny søgning. Men hele tabellen skal ikke slettes, de rækker, der ikke er
>> resultat af søgningen skal blive der.
>
> Hvis det var mig, ville jeg benytte en <div> til leveringsadresser, og
> bygge/udskifte hele <table> via innerHTML i denne <div>.
> At bygge nodes enkeltvis er noget langsommere end at 'streame' resultatet
> ind i parseren via innerHTML.
>
Men der er nogle adressr, jeg ikke vil udskifte, f.ex. fakturaadressen
og tidligere brugte leveringsadresser.
Måske kan jeg tage den eksisterende tabel, bygge en ny med kun de
rækker, jeg vil beholde, tilføje de ny rækker, og erstatte innerHTML med
den ny tabel...
| |
|
|