Hallo zusammen,
ich bin in der JS-Welt noch recht frisch und unbeholfen und komme bei einem Problem einfach irgendwie nicht weiter, was mit ziemlicher Sicherheit an einer Wissenslücke meinerseits liegt. Da ich mir entsprechende Kenntnisse gerade noch erarbeite und wer weiß wie weit von der Lösung entfernt bin, bin ich etwas frustriert. Es wäre schön, wenn mir jemand weiterhelfen könnte...
Nun zum eigentlichen Problem...es handelt sich um folgenden Code:
Dieser wiederholt sich ungefähr 10 (Segmente) mal. Mit einer Funktion möchte ich die einzelnen Segmente ansprechen. Also erst id="DD" (Segment) auswählen, dann die class="accordion" mit dem HTML-Inhalt "Digitale Dienstleistungen" finden und mit einem Listeneintrag (var schwerpunktList) vergleichen, bei Übereinstimmung dann die class="text" mit dem HTML-Inhalt "Januar" finden und mit einem Listeneintrag (var monatList) vergleichen und letztendlich bei Übereinstimmung von diesen Werten in die class="text1" einen Text einfügen. Dazu habe ich die folgende Funktion geschrieben:
Soweit läuft diese auch, allerdings bekomme ich die class="text" nicht sauber angesprochen. Die Funktion findet diese class, aber schreibt dann den Text in alle class (da diese ja auch mehrfach verwendet wird). Logisch betrachtet, müsste ich var ausgabe auf akkordion(i) beziehen. Also var ausgabe = akkordion(i).getElementsByClassName("text1")(j). Geht aber nicht. Ich weiß nicht, ob es einfach nur blöd gebaut ist von mir oder ob ich eine Kleinigkeit übersehen habe oder nicht weiß...Über eure Ideen oder Lösungsansätze würde ich mich sehr freuen.
Und wenn eure Ideen/Lösungsansätze ohne den Bezug auf die id="DD" auskommen würde, wäre es ideal...
Ich hoffe ich habe genug Details angegeben, um es euch verständlich darzulegen!?
Besten Dank schon mal vorab.
Viele Grüße
Andreas
ich bin in der JS-Welt noch recht frisch und unbeholfen und komme bei einem Problem einfach irgendwie nicht weiter, was mit ziemlicher Sicherheit an einer Wissenslücke meinerseits liegt. Da ich mir entsprechende Kenntnisse gerade noch erarbeite und wer weiß wie weit von der Lösung entfernt bin, bin ich etwas frustriert. Es wäre schön, wenn mir jemand weiterhelfen könnte...
Nun zum eigentlichen Problem...es handelt sich um folgenden Code:
HTML:
<div id="DMW">
<div id="DD">
<button id="Index" class="accordion" onclick="ShowSlides(undefined,'A1');return false">Digitale Dienstleistungen</button>
<div class="panel">
<div class="slideshow-container">
<div class="mySlides fade DMW_A1" style="display: none;height:400px;overflow-y: auto;">
<div class="text">Januar</div>
<div class="text1"></div>
</div>
<div class="mySlides fade DMW_A1" style="display: none;height:400px;overflow-y: auto;">
<div class="text">Februar</div>
<div class="text1"></div>
Dieser wiederholt sich ungefähr 10 (Segmente) mal. Mit einer Funktion möchte ich die einzelnen Segmente ansprechen. Also erst id="DD" (Segment) auswählen, dann die class="accordion" mit dem HTML-Inhalt "Digitale Dienstleistungen" finden und mit einem Listeneintrag (var schwerpunktList) vergleichen, bei Übereinstimmung dann die class="text" mit dem HTML-Inhalt "Januar" finden und mit einem Listeneintrag (var monatList) vergleichen und letztendlich bei Übereinstimmung von diesen Werten in die class="text1" einen Text einfügen. Dazu habe ich die folgende Funktion geschrieben:
Code:
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
var group = document.getElementById("DD");
var akkordion = group.getElementsByClassName("accordion");
var akkordionTest = document.getElementsByClassName("accordion");
while (listItemEnumerator.moveNext()) {
for (i = 0; i < akkordion.length; i++){
var oListItem = listItemEnumerator.get_current();
var schwerpunktList = oListItem.get_item('Schwerpunkt');
if (schwerpunktList == akkordion(i).innerHTML){ //Wenn Schwerpunkt aus Liste dem Schwerpunkt des Akkordions entspricht
var monat = group.getElementsByClassName("text");
for (j = 0; j < monat.length; j++){ //Liest alle Monate des Akkordions ein
var monatList = oListItem.get_item('Monat');
if(monatList == monat(j).innerHTML){ //Wenn Monat aus Liste dem Monat des Akkordions des Schwerpunkts entspricht
var auswertList = oListItem.get_item('Auswertung');
var ausgabe = group.getElementsByClassName("text1")(j);
ausgabe.innerHTML = auswertList; //Schreibe in Textbereich des Akkordions-Monat
}
}
}
}
}
}
Soweit läuft diese auch, allerdings bekomme ich die class="text" nicht sauber angesprochen. Die Funktion findet diese class, aber schreibt dann den Text in alle class (da diese ja auch mehrfach verwendet wird). Logisch betrachtet, müsste ich var ausgabe auf akkordion(i) beziehen. Also var ausgabe = akkordion(i).getElementsByClassName("text1")(j). Geht aber nicht. Ich weiß nicht, ob es einfach nur blöd gebaut ist von mir oder ob ich eine Kleinigkeit übersehen habe oder nicht weiß...Über eure Ideen oder Lösungsansätze würde ich mich sehr freuen.
Und wenn eure Ideen/Lösungsansätze ohne den Bezug auf die id="DD" auskommen würde, wäre es ideal...
Ich hoffe ich habe genug Details angegeben, um es euch verständlich darzulegen!?
Besten Dank schon mal vorab.
Viele Grüße
Andreas