23. september 2002 - 13:32Der er
1 kommentar og 1 løsning
Marker et eller flere ord ved søgning
Den her kan markere et ord eller flere hvis de står i forlængelse af hinanden. Er der nogen der har et bud på hvordan man markerer alle ord selvom de ikke lige står i forlængelse af hinanden?
function markWord(id, needle) { if ( document.getElementById ) { var elm = document.getElementById(id); } else if (document.all) { var elm = document.all[id]; } else { return; // sorry, NS4 er ikke med. }
// Initialiser variabler var out = ""; var haystack = elm.innerHTML;
if (haystack.indexOf('<') == -1 || haystack.indexOf('>') == -1) { // Hvis ikke vi finder et < eller et > i haystack, er der ingen grund til at lede efter noget. Vi kan parse alt out = doMark(haystack, theword); } else { // Ellers må vi parse igennem for tags while (haystack.indexOf('<') != -1 && haystack.indexOf('>')) { // Alt indtil < skal parses out += doMark(haystack.substring(0, haystack.indexOf('<')), needle); // Alt fra < til > skal ignoreres out += haystack.substring(haystack.indexOf('<'), haystack.indexOf('>')+1) // Fjern det parsede stykke fra "høstakken" haystack = haystack.substring(haystack.indexOf('>')+1,haystack.length); } // Husk den sidste lille rest efter sidste tag out += doMark(haystack, needle); }
Jeg fandt en løsning ved at at opbygge et array. Løbe det igennem og dermed opbygge en streng med flere replacements.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.