Mit JQuery Dateiendungen dynamisch verändern
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abarbeiten
anwendung
base
code
dank
datei
dokument
dom
endung
externe webseite
fakt
fehler
index
interessieren
pfad
posten
problem
test
umsetzen
vorhaben
-
Aloha,
ich hab da ein Problem :D Es geht um Folgendes:
Ich möchte mittels JQuery ein Array abarbeiten:
var pages = ['test', 'blabla', 'xyz'];
Es handelt sich hierbei um Dateinamen (ohne Endung), die im Dokument verlinkt sind. Diese Dateinamen haben im Dokument die Endung .php und ich möchte gerne .html daraus machen.
Fragt bitte nicht, warum und wieso :p Fakt ist, dass ich folgendes probiert habe:
$.each(pages, function(index, value) { $("a[href='" + value + ".php']").attr("href", location.href.substring(0,location.href.lastIndexOf('/')+1) + $("a[href='" + value + ".php']").attr("href").replace('php', 'html')); });
Das endet leider mit dem Fehler:
$("a[href='" + value + ".php']").attr("href") is undefined
Dieser Fehler bezieht sich auf die 2. Anwendung von $("a[href='" + value + ".php']").attr("href")
Bei meinem Versuch sei zu beachten, dass ich den Pfad des aktuellen Verzeichnisses benötige (ich arbeite lokal mit einem base-href auf eine externe Webseite).
Irgendwer irgendeine Idee, woran es liegt bzw. wie ich mein Vorhaben umsetzen kann?
Beitrag zuletzt geändert: 14.5.2012 20:35:24 von fabo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Bei mir funktioniert es, so lustig es auch ist, komplett richtig. Sei es in Firefox 12, Chrome 18 oder IE 9.
Benutzt habe ich dabei den Code: (Datei: file:///C:/test.html)
<head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var pages = ['test', 'blabla', 'xyz']; $.each(pages, function(index, value) { $("a[href='" + value + ".php']").attr("href", location.href.substring(0,location.href.lastIndexOf('/')+1) + $("a[href='" + value + ".php']").attr("href").replace('php', 'html')); }); }); </script> </head> <body> <a href="test.php">test</a> <a href="blabla.php">blabla</a> <a href="xyz.php">xyz</a> </body>
Und mein DOM sieht nachher im Chrome so aus:
<html><head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ var pages = ['test', 'blabla', 'xyz']; $.each(pages, function(index, value) { $("a[href='" + value + ".php']").attr("href", location.href.substring(0,location.href.lastIndexOf('/')+1) + $("a[href='" + value + ".php']").attr("href").replace('php', 'html')); }); }); </script> </head> <body> <a href="file:///C:/test.html">test</a> <a href="file:///C:/blabla.html">blabla</a> <a href="file:///C:/xyz.html">xyz</a> </body></html>
-
Du hast Recht. SO funktioniert es. Der Fehler entsteht scheinbar lediglich in meinem HTML-Dokument. :S Danke trotzdem =)
Beitrag zuletzt geändert: 15.5.2012 9:02:45 von fabo -
Du kannst auch gerne dein Dokument posten, damit man dir da eventuell dabei helfen könnte. :P Würde mich nämlich auch interessieren, weshalb es nicht funktionieren würde.
-
Sagen wir so: Das Problem lies sich mittlerweile lösen :)
var pages = ['test', 'blabla', 'xyz']; $.each(pages, function (index, value) { $("a[href$='" + value + ".php']").attr("href", function () { return (location.href.substring(0,location.href.lastIndexOf('/')+1) + $(this).attr('href').replace('.php', '.html')); }); });
Damit geht's fehlerfrei :) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage