[js] list tags maken in textarea

Pagina: 1
Acties:

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ok, stel ik heb een text area. In deze text area selecteer ik bijv de volgende text:

list item 1
list item 2
etc..

Nu wil ik dat als ik op een knop druk hij van de geselecteerde text het volgende maakt:

<ul>
<li>listitem 1</li>
<li>listitem 2</li>
</ul>

Het geselcteerde heb ik al in een variabele staan. Het gaat mij erom hoe ik onderscheid maak tussen newlines ed dmv een loopje ofiets dergelijks. Ik ben geen held in javascript. Maar heb het nodig voor een simpel cmsje ommn sites te kunnen onderhouden.

[ Voor 9% gewijzigd door RSD op 08-03-2005 16:43 ]


  • MeIsTwisted
  • Registratie: November 2001
  • Laatst online: 28-07-2023

MeIsTwisted

not a Twisted mind

zoek eens naar split

Multimonitor is relax :P


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Waar moet ik op splitten dan?

op \n

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
code:
1
2
3
4
5
6
7
            var separator = '\r\n';
            var stringArray = selectedtext.split(separator);
            selectedtext = '<ul>'
            for (var i=0; i < stringArray.length; i++) {
                selectedtext = selectedtext+'<li>'+stringArray[i]+'</li>';
            }
            selectedtext = selectedtext+'</ul>';


Dit werkt voor diegene die het willen weten!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

JavaScript:
1
selectedtext = '<ul>\r\n<li>'+(selectedtext.split(/\r?\n/).join('<\/li>\r\n<li>'))+'<\/li>\r\n<\/ul>';

Intentionally left blank


Verwijderd

Die genereert <ul><li></ul> als er geen newlines geselecteerd zijn, stouterd! ;)

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Verwijderd schreef op dinsdag 08 maart 2005 @ 17:32:
Die genereert <ul><li></ul> als er geen newlines geselecteerd zijn, stouterd! ;)
Beter kijken lieverd:

JavaScript:
1
2
3
4
var selectedtext = 'foo';
selectedtext = '<ul>\r\n<li>'+(selectedtext.split(/\r?\n/).join('<\/li>\r\n<li>'))+'<\/li>\r\n<\/ul>';

alert(selectedtext);

geeft:
code:
1
2
3
<ul>
<li>foo</li>
</ul>


Enkel als je geen text hebt geselecteerd krijg je ook een enkele lege <li></li>, maar dat is makkelijk te ondervangen door te kijken of selectedtext leeg is ;)

[ Voor 13% gewijzigd door crisp op 08-03-2005 17:43 ]

Intentionally left blank

Pagina: 1