login  Naam:   Wachtwoord: 
Registreer je!
Scripts > JavaScript > Tekst effecten > Woord highlighter


Reacties op het script Woord highlighter

Offline  Thomas
Gepost op: 27 juni 2006 - 13:53
Moderator



Kun je hiermee ook delen van woorden highlighten; m.a.w. zal bij woord "henk" ook "geschenk" worden gevonden?

Kleine verkorting van de code:
  1. if ( woordenArray[i].indexOf( "onclick" ) == -1) {
  2. woordenArray[i] = woordenArray[i].replace( woord , "<span class=\"highlight\">" + woord + "</span>" );
  3. inhoud += woordenArray[i] + " ";
  4. } else {
  5. inhoud += woordenArray[i] + " ";
  6. }


-->

  1. if ( woordenArray[i].indexOf( "onclick" ) == -1) {
  2. woordenArray[i] = woordenArray[i].replace( woord , "<span class=\"highlight\">" + woord + "</span>" );
  3. }
  4. inhoud += woordenArray[i] + " ";


Kun je dit trouwens niet in 1x na afloop doen m.b.v.
inhoud = woordenArray.join(" ");
?

Offline  Ontani
Gepost op: 27 juni 2006 - 13:57
Gouden medailleGouden medailleGouden medailleGouden medaille

-1




geschenk wordt gehighlight als:
geschenk
kortere versie is aangepast.

En idd via join had het ook gekunnen.
al was ik niet zeker dat join in javascript bestond dus heb ik het maar zo gedaan.

Offline  haytjes
Gepost op: 06 juli 2006 - 23:54
Gouden medailleGouden medaille

JS gevorderde




de functie is veel korter te maken, en 'k denk ook beter. Maar daar laat ik jou over beslissen;

  1. function highlight(woord) {
  2. if (woord == null) { woord = "henk"; }
  3.  
  4. obj = document.getElementById('inhoud');
  5.  
  6. var regex = new RegExp("("+woord+")", "g");
  7. obj.innerHTML = obj.innerHTML.replace(regex, "<span class=\"highlight\">$1</span>");
  8.  
  9. }

Offline  Ontani
Gepost op: 07 juli 2006 - 00:07
Gouden medailleGouden medailleGouden medailleGouden medaille

-1




in php gaat een replace alles af en vervangt alle overeenkomstige waardes met de ingestelde waardes.

in javascript werkt replace dus maar 1 keer, daarom dat ik het zo heb gedaan.

Offline  haytjes
Gepost op: 07 juli 2006 - 12:49
Gouden medailleGouden medaille

JS gevorderde




dat is niet waar. In JavaScript moet je alleen zetten dat hij ze allemaal moet doen. Kijk maar naar mijn script, die werkt onder JS en ik heb het zelf geprobeerd.

Om ervoor te zorgen dat JS alles vervangt, moet je een g(lobal) search doen:
  1. var regex = new RegExp(/regex/, "g");
of
  1. string.match(/regex/g);

;-)

Offline  Ontani
Gepost op: 07 juli 2006 - 13:07
Gouden medailleGouden medailleGouden medailleGouden medaille

-1




héhé fijn da ik da weet voor volgende keer. Geen string.replace meer gebruiken in javascript dus. toch niet zonder regex dan

Offline  vinTage
Gepost op: 03 november 2007 - 21:29
Nieuw lid



Beide manieren werken, wat de beste is maakt me ook niets uit, maar bij de manier van haytjes gebeurd er toch iets anders (iets wat niet goed is imo)

klik maar eens op highlight et met de voorbeeld code, dan gaat hij op Ontani's manier goed en bij haytjes manier veranderd de link naar

et');">highlight et


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.07s