Du willst also von mouseover bis mouseout HTML-Klassen mehrerer div-Elemente auf Basis eines Vergleichs des jeweiligen Inhalts setzen?
Für die Events gibt es die DOM-Attribute element.onmouseover und element.onmouseout, die man mit Funktionen befüllen kann. Auf onmouseout solltest Du eine Funktion legen, die allen divs ihre ursprüngliche Klasse zurückgibt. Da onmouseover auf das jeweilige div zugreifen muss, empfielt sich hier, das jeweilige Node an das Event zu übergeben. Das kann man mit einer Closure machen oder indem man das Event aus dem HTML-Eventattribut heraus mit dem Argument "this" bestückt.
Die Closure-Lösung sieht im JavaScript folgendermaßen aus:
var elements = document.getElementsByTagName('div');
for (var i=0; i < elements.length; i++) {
elements[i].onmouseover = function(element) { return function() {
// hier muss die Klasse gesetzt werden
}}(elements[i]);
elements[i].onmouseout = function() {
// hier musst Du alle Klassen wieder entfernen
};
}
Die HTML-Lösung geht so:
<div onmouseover="setClasses(this);" onmouseout="removeClasses();">...</div>
Und im JavaScript muss man dann die Funktionen setClasses und removeClasses definieren.
Jetzt zum Kreuzvergleich: den Inhalt bekommst Du mit innerHTML. Diesen musst Du in seine Bestandteile zerlegen, dass geht am schnellsten mit einer RegExp:
var values = {};
element.innerHTML.replace(/([^=,\ ]+)=(\d+)/g, function(f, k, v) { values[k]=v; });
Nun befindet sich in values ein Objekt mit allen Werten, die in dem Inhalt zu finden sind, z.b values['p_id'] == 1; Dieses kannst Du mit einer for (key in values) - Schleife durchlaufen und alle anderen divs in einer weiteren Schleife testen (Achtung: nur das Aufkommen des Wertes innerhalb des Strings zu testen, reicht nicht, da p=1 auch bei p=10 zutreffen würde).
HTML-Klassen vergibt man in JavaScript über die Eigenschaft className.
Jetzt musst Du nur noch das alles zusammenbauen und schon hast Du die Lösung :-)
Gruß, LX
RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.