Toon posts:

Hoe vind ik een <span> tag in source

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb het volgende probleem.

Ik heb een online html editor die werkt met dhtml.
Ik heb nu code nodig om een <span> tag te zoeken vanaf de huidige positie en te verwijderen.
stel ik beh deze source code:
aaa<span>bbbbb<font>ccccc<b>ddd</b></font>bbbb</span>aaaa

en mijn cursor staat in het ddd stuk. Dan moet ik via een functie de span tag vinden en verwijderen.

Momenteel heb ik deze code:
var sText = document.selection.createRange();
sText.parentElement().outerHTML = sText.parentElement().innerHTML;

dit verwijderd echter de eerste tag die hij tegen komt. dus vanaf 'ddd' eerst de <b> dan de <font> en dan pas de <span>.
Ik wil nu dat meteen de <span> verwijderd wordt en de andere tags gewoon blijven staan.

wie kan me helpen....

Thnx, Martin

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

met de functies charAt() en indexOf()kun je een string doorzoeken op het voorkomen van 1 of meer tekens.


check hier voor meer info.

www.jurgroessen.nl


Verwijderd

Topicstarter
Het probleem is dan, hoe krijg ik de juiste string in een variabele.
als ik doe:
var sText = document.selection.createRange();
var sText2 = sText.parentElement().outerHTML ;

dan zit in sText2 de text + de eerste tag vanaf de cursor positie. Dus om even terug te gaan naar het voorbeeld, sta ik ergens in 'ddd' dan staat in sText2 = '<b>ddd</b>'.

Ik kan dan controleren of dit een <span> tag is of niet, zo ja, kan ik hem ook verwijderen, maar zo niet, dan moet ik alles hebben totaan de volgende tag. dus dan zou sText3 bijvoorbeeld moeten worden:
'<font>ccccc<b>ddd</b></font>'

en dit proces moet herhaald worden tot er een <span> tag tegen gekomen wordt.

Verwijderd

Topicstarter
Ik kreeg op een ander forum deze code, maar heb deze nog niet werkend kunnen krijgen. :?

Ik denk dat de gedachte achter de code is om net zo lang de functie uit te voeren totdat text wordt gevonden met als parentElement.tagName SPAN. Alleen moet er dan wel na elke keer dat de functie uitgevoerd wordt, opgeschoven worden in de tekst, en dat gebeurd niet.

Heeft iemand een idee hoe ik het werkend kan krijgen?
function delspan() {
if (document.selection){
var sText = document.selection.createRange();
var timer = setInterval("isSpan()", 1);
}
}

function isSpan(){
if (sText.parentElement.tagName == "SPAN"){
sText.parentElement.outerHTML = sText.parentElement.innerHTML;
clearTimeout("timer");
}
}
in de isSpan() functie kent hij trouwens op deze manier ook sText niet, dit heb ik opgelost door gewoon :
var sText = document.selection.createRange();
toe te voegen.