Toon posts:

[Javascript] rij invoegen in een iframe.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil met een javafunctie een rij en cel invoegen in een iframe, waar al <table> en </table> instaat. Nu is dat niet zo'n probleem en kan ik dat gewoon met pasteHTML() doen, maar wanneer ik nu met mijn cursor in die cel sta en weer op de knop(rij met cel invoegen) druk, dan moet hij dus buiten de <tr> tags van de vorige weer een rij maken.

Ik heb dus:
code:
1
2
3
4
5
6
<table>
  <tr>
     <td> Ik sta hier met mijn cursor en wil een nieuwe rij toevoegen </td>
  </tr>
<!-- en die moet dan dus hier komen -->
</table>


Hoe kan ik dit probleem oplossen dat hij pas na de volgende </tr> tag invoegt?

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

var sTable = document.getElementById(0).getElementsByTagName("tr")[0];
var sTr = document.createElement("tr");
var sTd = document.createElement("td");
sTr.appendChild(sTd);
sTable.appendChild(sTr);

klaar.

| Life is a game (and games are fun) | homepage |


Verwijderd

Topicstarter
Ik doe nu zoiets als ik op de knop druk:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
function InvoegenRijen(aantal_kolommen)
{
    iframe_hoofd.focus();
    var selectie = iframe_hoofd.document.selection;
    var pointer = selectie.createRange();
    
    if (aantal_kolommen == 1)
    {

                // ga naar de volgende </tr> tag en doe:
        pointer.pasteHTML('<tr bordercolor="blue"><td></td></tr>');
    }
}

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

oei.
Dat pasteHTML commando ken ik niet.
Mijn bovenstaande regels code zijn volgens DOM, en werken dus in elke browser wanneer je het aan de praat hebt.
Natuurlijk staat die bovenstaande code in een functie.

| Life is a game (and games are fun) | homepage |


Verwijderd

Topicstarter
Het hoeft alleen maar in IE5.5+ te werken dus. Hoe krijg ik jouw DOM code in mijn stukkie op zo'n manier dat het werkt?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 27-08 20:43

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Ik zou gaan voor innerHTML :)

JavaScript:
1
parent.frames['naamvanhetiframe'].document.getElementById('tabelspan').innerHTML+='zet dit erbij';


en natuurlijk een span in het iframe, waar de rijen moeten komen :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Verwijderd

Topicstarter
innerHTML? Ik moet de tags er ook bij hebben toch?

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

code:
1
2
3
4
5
6
7
8
function addRow(){
  var sTable = document.getElementById(0).getElementsByTagName("tr")[0];
  var sTr = document.createElement("tr");
  var sTd = document.createElement("td");

  sTr.appendChild(sTd);
  sTable.appendChild(sTr);
}


code:
1
<input type=button onclick="addRow();">

Dat moet al werken.
Mooiste is wanneer je je table nog een <tbody> tag geeft. Dan weet je zeker dat die uniek is, en kun je die invullen ipv getElementsByTagName("tr")[0]; krijg je dan getElementsByTagName("tbody")[0];

| Life is a game (and games are fun) | homepage |


Verwijderd

Topicstarter
Hey akakiwi, heel erg bedankt, maar hoe weet je nu dat het om de volgende <\tr> gaat dan?

Verwijderd

Topicstarter
kan dit niet met pasteHTML trouwens? Het kan namelijk zijn dat ik wat anders wil pasten dan een element.
Pagina: 1