• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

setAttribute auf mehrere Objekte mit gleicher id/name

Status
Für weitere Antworten geschlossen.

dandijok

Neues Mitglied
Hallo,

ich möchte mit diesem script

HTML:
function tausch(b) {
document.pin.setAttribute ("src", b);
return;
}

alle Bilder einer Seite mit name="pin" bzw. id="pin" tauschen. Dazu rufe ich es so auf

HTML:
onClick="return tausch('Link_zum_Bild');"

Wenn ich nur ein Bild mit dieser Benennung habe, funktioniert der Tausch. Kaum habe ich 2 oder mehr, funzt nichts mehr. Was mache ich falsch? Wie kann ich es richtig machen?

Gruß und Danke
DAndiJok
 
Werbung:
Falsch ist, dass Du mehrere Elemente mit der selben ID hast. Eine ID ist eine seitenweite eindeutige Kennung.

Du könntest mit document.getElementsByTagName (und der Eigenschaft className, wenn Du auch andere gleiche Tags hast, die nicht betroffen sein sollen) etwas machen.
 
Danke für den Tipp, jedoch funzt auch das nicht. Vielleicht habsch was übersehen oder was falsch zusammen gestellt?

HTML:
function tausch(b) {
document.getElementsByTagName('img').getElementsByClassName('pin').setAttribute ("src", b);
return;
}


auch das funktioniert nicht:

HTML:
function tausch(b) {
document.getElementsByClassName('pin').setAttribute ("src", b);
return;
}


Ein einzelner Aufruf jedoch funktioniert. Also so:

HTML:
function tausch(b) {
document.getElementsByClassName('pin')[0].setAttribute ("src", b);
return;
}


Hier soll das script greifen:

HTML:
<img class="pin" style="top:513px; left:15px" src="Link_zum_Bild">
<img class="pin" style="top:500px; left:94px" src="Link_zum_Bild">
<img class="pin" style="top:48px; left:115px" src="Link_zum_Bild">


So wirds aufgerufen:

HTML:
onClick="return tausch('Link_zu_anderem_Bild');"


Wo ist mein Fehler?

Gruß
DAndiJok
 
Werbung:
Es gibt kein document.getElementsByClassName(), wie Dir die Fehlerkonsole schneller hätte sagen können!

An alle JavaScript-Programmierer: Guckt in die Fehlerkonsole (Firefox: Extras->Fehlerkonsole). Man kann beim Programmieren keine Fehler finden, wenn man keine Fehlerbeschreibung hat. Das ist immer das erste, wo man reingucken muss, wenn etwas nicht so läuft, wie man es erwarten würde! Ihr erspart Euch und anderen viel viel Arbeit!
 
Efchen, ich danke Dir wirklich für Deine Hilfe, aber nicht jeder hier kennt sich so gut aus wie Du und daher kommen Fragen auf und dadurch gibt es solche Foren.

Ich habe nichts von einer Fehlerkonsole gewusst, werde diese aber ab sofort natürlich nutzen. Leider bringt mir aber auch die Konsole nichts, wenn Sie mir zwar sagt, dass das falsch ist, ich aber die Lösung/den richtigen Weg dennoch nicht finde/weiß.

Ich habe viel rumgegooglet und diese "functions-Teile", wie ich Sie eingebunden habe, so gefunden.

Auch in anderen Foren stieß ich auf solche Anordnungen.

Kurz:

1. Danke für den Tipp mit der Konsole.
2. Ich bin hier um zu lernen und weiß daher leider nicht alles und muss Fragen stellen um mich weiter zu bilden
3. Habe ich noch immer nicht die Lösung gefunden.


Gruß
DAndiJok
 
Werbung:
Es gibt ein document.getElementsByClassName(). Definiert in HTML5 und in Firefox 3 unterstützt.
Ich habs neulich selbst noch benötigt und wurde von der Fehlerkonsole (FF3) angeblafft, dass es sowas nicht gibt.

Aber wieso ist eine JavaScript-Funktion in HTML definiert? Das musst Du mir erklären.

Efchen, ich danke Dir wirklich für Deine Hilfe, aber nicht jeder hier kennt sich so gut aus wie Du und daher kommen Fragen auf und dadurch gibt es solche Foren.
Genau, und deswegen gebe ich Dir ja auch die entsprechenden Antworten.

Ich habe nichts von einer Fehlerkonsole gewusst, werde diese aber ab sofort natürlich nutzen.
Es tut mir leid, wenn das so rübergekommen ist, dass ich an Deinem Verstand zweifeln würde :-) Dem ist natürlich nicht so, aber in letzter Zeit lese ich ständig Fragen der Art "Was ist falsch?". Wenn ich aber JavaScript programmieren will, dann muss ich doch von der Fehlerkonsole wissen, wie sonst soll ich mein Script debuggen? Wenn bei Programmen jeglicher Art irgendwas nicht geht, dann braucht man Fehlermeldungen, um der Sache auf den Grund gehen zu können.
Mich hat nur etwas genervt, dass von 10 JavaScript-Anfängern 9 nichts von der Fehlerkonsole wussten, ich mich dabei gefragt habe, wie wollen die so programmieren und was lernen?

Leider bringt mir aber auch die Konsole nichts, wenn Sie mir zwar sagt, dass das falsch ist, ich aber die Lösung/den richtigen Weg dennoch nicht finde/weiß.
Sie sagt Dir aber auch, was falsch ist. Wenn Du noch nichtmal weißt, wo der Fehler liegt, kannst Du überhaupt nicht nach einer Lösung suchen. Wenn Du wenigstens weißt, in welche Richtung der Fehler geht, hast Du einen Anhaltspunkt, mit dem Du eine Lösung suchen kannst.

Ich bin hier um zu lernen und weiß daher leider nicht alles und muss Fragen stellen um mich weiter zu bilden
Ja, das sollst Du ja auch tun.

Habe ich noch immer nicht die Lösung gefunden.
Wenn ich mal davon absehe, dass crash meinen Erfahrungen widerspricht und es womöglich doch eine andere, bessere Lösung gibt, hast Du meinen Vorschlag, wie Du das Problem lösen kannst, bisher überlesen (gestern 12:55). Wenn Du Dir das nochmal anschaust, solltest Du damit was anfangen können.


Gruß
DAndiJok[/QUOTE]
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben