EKKi: javascript soll html nach wort durchsuchen

Beitrag lesen

Mahlzeit,

ich programmiere eine eine seite für unsere pfarre, und da habe ich eine ministrantenliste, die über 2 Monate geht. Nun möchte ich, dass man mithilfe einer Auswahlbox (select), alle namen eines ministranten auf anhieb sieht... ist das vorstellbar? das genze wäre nach möglichkeit auf einer seite...

Da ich meine gute Tat für heute bisher noch nicht getan hab und grad eh nix anderes zu tun und deshalb Langeweile hatte, hier mal das Ergebnis der letzten Minuten:

-----8<-----8<-----8<-----

<html>

<head>
<title>Bliblablubb</title>
<style type="text/css">

.mark {
 background-color: #f00;
 font-weight:  bold;
 color:   #fff;
}

</style>
<script type="text/javascript">

function f_mark(p_value)
{
 // Alten Inhalt auslesen
 var v_content = document.getElementById('content');
 var v_old = v_content.innerHTML;

// Erstmal evtl. vorhandene alte Markierungen entfernen
 var v_pattern = new RegExp('<span class="mark">([^<]*)</span>', 'gi');
 var v_new = v_old.replace(v_pattern, '$1');

if (p_value != '')
 {
  // Diese beiden Zeilen markieren nur ganze Wörter
  v_pattern  = new RegExp('(\W)(' + p_value + ')(\W)', 'gi');
  v_new   = v_new.replace(v_pattern, '$1<span class="mark">$2</span>$3');

// Diese beiden Zeilen markieren alles, was passt - auch Wortteile
//  v_pattern  = new RegExp('(' + p_value + ')', 'gi');
//  v_new   = v_new.replace(v_pattern, '<span class="mark">$1</span>');

}

// Neuen Inhalt setzen
 v_content.innerHTML = v_new;
}

</script>
</head>

<body>

<select onChange="f_mark(this.value)">
 <option value=""></option>
 <option value="Karl">Karl</option>
 <option value="Hans">Hans</option>
 <option value="Peter">Peter</option>
</select>

<input type="text" onKeyUp="f_mark(this.value)" />

<div id="content">
<ul>
 <li>Karl Klapp</li>
 <li>Hans Schranz</li>
 <li>Karl Napf</li>
 <li>Peter Meier</li>
 <li>Hans Mayer</li>
 <li>Guido Petersen</li>
 <li>Ingo Hansen</li>
 <li>Eduard Karlsson</li>
</ul>
</div>

</body>

</html>

----->8----->8----->8-----

Vielleicht kannst du ja was damit anfangen ...

MfG,
EKKi