php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.08.2008, 11:14  
phyton
Gast
 
Beiträge: n/a
Standard Mit Javascript an allen Link Tags einen rel-Attribut anfügen

Hallo!
Ich habe folgende Frage: Kann man mit Javascript an alle Links (a) ein rel="lightbox[roadtrip]" hängen? Zum Beispiel so:

vorher:
<a href="bild.jpg"><img src="bild_thumb.jpg"/></a>
<a href="bild2.jpg"><img src="bild2_thumb.jpg"/></a>
<a href="bild3.jpg"><img src="bild3_thumb.jpg"/></a>

nachher:
<a href="bild.jpg" rel="lightbox[roadtrip]"><img src="bild_thumb.jpg"/></a>
<a href="bild2.jpg" rel="lightbox[roadtrip]"><img src="bild2_thumb.jpg"/></a>
<a href="bild3.jpg" rel="lightbox[roadtrip]"><img src="bild3_thumb.jpg"/></a>


danke euch

phyton

Geändert von phyton (23.08.2008 um 11:15 Uhr). Grund: verdeutlichung
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.08.2008, 11:32  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Sicherlich geht das.
Einfach alle a-Elemente auswählen und das Attribut anhängen. Mit einem Framework wie JQuery ist das ein Einzeiler:
Code:
$('a').attr( { rel: "lightbox[roadtrip]" } );
Ansonsten musst du dir eben alle A-elemente auswählen ( document.getElementsByTagName ) und in einer Schleife das Attribut hinzufügen ( .setAttribute() ).
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 23.08.2008, 12:24  
phyton
Gast
 
Beiträge: n/a
Standard

danke dir! ich hab jetzt mal ein skript geschrieben, aber es funktioniert nicht. kann mir jemand helfen? ich muss diese ganze prozedur in meinem skript machen, weil ich will ja nur bei bild-verlinkungen das rel-attribut haben. schaut es euch an:


<script type="text/javascript">
var links = document.getElementsByTagName("a");
var anzahl = links.length;

for(i=1; i<=anzahl; i++)
{
var endung = links.split(".");
if(endung=="jpg")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="gif")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="png")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="jpeg")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="JPG")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="GIF")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="PNG")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="JPEG")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
}
</script>
  Mit Zitat antworten
Alt 23.08.2008, 12:35  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Zitat:
for(i=1; i<=anzahl; i++)
Das muss < und nicht <= heißen.
Außerdem würde ich ein switch statt if/else if/else if/else if... benutzen.

Wenn es dann nicht funktioniert, lasse dir die Variablen mal ausgeben.

Ach, und die Code-Tags dürfen nicht nur Moderatoren und anderen Übermenschen benutzen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems

Geändert von Manko10 (23.08.2008 um 12:37 Uhr).
Manko10 ist offline   Mit Zitat antworten
Alt 23.08.2008, 12:52  
phyton
Gast
 
Beiträge: n/a
Standard

hmm klappt immer noch nicht... ich hab mir mal die variablen ausgeben lassen:

links = [object HTMLCollection]
anzahl = 0;

und wenn ich versuche mir was in der for schleife ausgeben zu lassen, kommt gar nichts raus...



phyton
  Mit Zitat antworten
Alt 23.08.2008, 12:59  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bitte [php] bbCode verwenden Bzw. [code]
ab es funktioniert nicht ist keine sinnvolle Fehlerbeschreibung
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (23.08.2008 um 13:01 Uhr).
nikosch ist offline   Mit Zitat antworten
Alt 23.08.2008, 13:00  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ja, das ist klar. Die wird bei 0 ja auch nicht durchlaufen.
Hast du derzeit überhaupt Links auf deiner Seite?
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 23.08.2008, 13:06  
phyton
Gast
 
Beiträge: n/a
Standard

keine angst da gibts genügend und zwar genau 75. hab mein skript angepasst aber es bewirkt nichts:

Code:
<script type="text/javascript">
var links = document.getElementsByTagName("a");

for(var i=0; i<links.length; i++)
{
var endung = links[i].getAttribute("href").split(".");
if(endung=="jpg")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="gif")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="png")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="jpeg")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="JPG")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="GIF")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="PNG")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
else if(endung=="JPEG")
{
document.getElementsByTagName("a")[i].setAttribute("rel", "lightbox[roadtrip]");
}
}
</script>
  Mit Zitat antworten
Alt 23.08.2008, 13:14  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hi,
wahrscheinlich hast du das script im Head-Bereich stehen - dort wird das JS ausgeführt obwohl das DOM noch nicht komplett geladen ist. Also entweder den Code erst nach dem entsprechenden Event starten (z.B. onLoad) oder den <script>-Teil unter alle Links setzen.


Noch zwei Anmerkungen:
Ich werde nie verstehen, warum Leute sich freiwillig mit purem JS rumschlagen und 1000end Browserbugs selbst umgehen statte einfach JQuery oder andere 1A-Frameworks zu nutzen.
Deinen Code könnte man auch noch etwas entschlacken - ein switch oder noch schöner: ein Array mit den gewünschten Dateiendungen statt tausende Abfragen und tausendfach wiederholtem Code
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 23.08.2008, 13:17  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Stimmt, das Ganze in einer Funktion zu kapseln wäre sinnvoll. Trotzdem kann ich nur schwer glauben, dass das Script keinen Fehler wirft.

@agrajag: Merke: Ein Framework schützt vor Arbeit nicht.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Link auf JavaScript Funktion andrew22 HTML, Usability und Barrierefreiheit 3 03.01.2007 17:06
Javascript link mit button öffnen (ich habe alles versucht ) Bruce HTML, Usability und Barrierefreiheit 8 27.03.2006 11:02
[Erledigt] Validation Problem - HTML Tags in Javascript HTML, Usability und Barrierefreiheit 7 06.03.2006 23:38
Variable wird geändert bei Übergabe an Javascript PHP Tipps 2007 4 17.12.2005 16:53
Daten aus MySQL-abfrage zum Link mit id zusammensetzen maccoder Datenbanken 2 13.09.2005 16:49
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Javascript im PHP Link PHP Tipps 2005 2 08.01.2005 02:05
Javascript Fenster über PHP Link Mano PHP Tipps 2004 2 07.10.2004 17:50
PHP Link ??? PHP Tipps 2004 4 25.06.2004 17:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript rel, rel javascript, javascript attribut hinzufügen, javascript attribute hinzufügen, javascript link rel, a rel js, link rel javascript, javascript rel setzen, javascript a rel, javascript rel attribute, htmlcollection ausgeben, javascript rel=, javascript attribut anhängen, attribut hinzufügen javascript, javascript this.rel, java script rel, rel attribute javascript, js rel, a rel javascript, link rel js

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:30 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum