Avatar billede obix Nybegynder
28. februar 2014 - 14:11 Der er 1 kommentar

Hjælp til manipulering af innerHtml i en div

Hej Eksperter.

Jeg har en div som brugerne kan paste eller skrive indhold i. Hvis de paster indhold ind kan innerhtmllen f.eks. se således ud.

<div class="someclass">some content inside a div</div>osv osv.

Jeg vil gerne implementere et søgefelt som highlighter det content brugeren søger på. Det gør jeg ved at ændre i innerhtml så hvis de f.eks. i ovenstående søger på "div" vil jeg gerne have inner html til at se sådan her ud.

<div class="someclass">some content inside a <span class="hightlight">div</span></div>osv osv.

Mit problem lige nu er at jeg laver en søg erstat på inner htmllen med det brugeren søger på. Men det dur ikke fordi jeg så kommer til at fange selve div tags'ene også og så ødelægger jeg htmllen.

Hvis jeg kunne lave et regular udtræk der kun finder tekst som ikke er inde i et html tag så er det nemt. Ellers er ideer velkomne. Løsning kodes i dart men måske jeg kan konvertere ideerne fra javascript til dart =)

Jeg har overvejet lidt at gennemløbe alle elements i min div og så tjekke deres indhold. Men så risikerer jeg vel at ramme et element der har et element inde i sig og så er der problemer igen =)
Avatar billede anri Novice
02. marts 2014 - 08:26 #1
HAr du kigget på .innerText og .textContent?

Alternativt kan det være du skal i gang med at kigge på regular expressions, der er nogle cases på derude hvor det er gjort.

..du skal nok bare være obs på at få konverteret større og mindreend ( < / > ) til &lt; og &gt; allerede under indtastningen.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester