d4shoernchen
Goto Top

Automatisch für Links das Title-Attribut setzen

Wünsche Euch einen schönen und sonnigen Tag,

hoffe bei Euch ist das Wetter auch so wie hier in Hannover?

Ich benötige einmal die Hilfe unserer Entwickler hier.

Ich betreibe eine Webseite mit Joomla auf der ich einige interne Verlinkungen habe. Jetzt bin ich auf der Suche nach einem kleinen JavaScript-Snippet der meine Links durchsucht und automatisch einen fest vorgeschriebes Title-Attribut setzt.

Beispielhaft:
<a href="#">Link</a>  

wird geändert in:
<a href="#" title="Link - fester Wert>Link</a>  

Was ist passiert. Es fügt das Attribut "Title" hinzu, vorangestellt das Wort welches als Link argiert und gefolgt von einer festen Beschreibung die ich im Script hinterlegen kann - z. B. der Seitenname ([Name-vom Link] + [ - ] + [FESTER-WERT]). Ist bereits ein Title verfügbar, sollte das Script diesen leeren und nach Angaben fortfahren.

Könnt ihr mir dort helfen?

Mit freundlichen Grüßen
Toni

Content-ID: 238617

Url: https://administrator.de/forum/automatisch-fuer-links-das-title-attribut-setzen-238617.html

Ausgedruckt am: 22.12.2024 um 11:12 Uhr

colinardo
Lösung colinardo 20.05.2014 aktualisiert um 13:02:40 Uhr
Goto Top
Hallo Toni,
mit jQuery ein kleines Script im Head deiner gewünschten Seiten:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>  
<script type="text/javascript">  
var festerText = " - Administrator.de";  
$(document).ready(function(e) {
	$("a").each(function() {  
		if ($(this).text() != ""){  
			$(this).attr("title",$(this).text() + festerText);  
		}
	});
});
</script>
Im jetzigen Zustand geht das natürlich sämtliche Links auf der Seite durch, eventuell muss du das dann noch entweder auf einen bestimmten Bereich (content-Bereich) eingrenzen oder nur auf Links anwenden die eine "#" als href oder ein anderes bestimmtes Merkmal haben. Das lässt sich einfach mit dem CSS-Selector machen.

Grüße Uwe
d4shoerncheN
d4shoerncheN 20.05.2014 um 12:47:58 Uhr
Goto Top
Hallo Uwe,

erstmal vielen Dank für deine Hilfe. Wie immer super Arbeit.
Reicht es aus wenn ich die Zeile
$("a.content").each(function() {  
so abänder, dass er nur die Links mit der Klasse "content" ändert?

Gruß
Toni
colinardo
colinardo 20.05.2014 aktualisiert um 12:49:15 Uhr
Goto Top
Zitat von @d4shoerncheN:
so abänder, dass er nur die Links mit der Klasse "content" ändert?
exakt !
d4shoerncheN
d4shoerncheN 20.05.2014 um 12:53:07 Uhr
Goto Top
Moin,

habe ich so mal versucht. Leider tut sich so nichts, es wird kein title-Attribut hinzugefügt. Habe gerade auch mal einen neuen Link gesetzt und manuell keinen Titel vergeben, hier aber das gleiche.

Gruß
Toni
colinardo
colinardo 20.05.2014 aktualisiert um 13:03:06 Uhr
Goto Top
Zitat von @d4shoerncheN:
habe ich so mal versucht. Leider tut sich so nichts, es wird kein title-Attribut hinzugefügt. Habe gerade auch mal einen
neuen Link gesetzt und manuell keinen Titel vergeben, hier aber das gleiche.
Habe hier gerade kein Joomla zum Testen, aber mit dieser Testseite geht dies einwandfrei:
<!doctype html>
<html>
<head>
<meta charset="utf-8">  
<title>Test</title>
</head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>  
<script type="text/javascript">  
var festerText = " - Administrator.de";  
$(document).ready(function(e) {
	$("a.content").each(function() {  
		if ($(this).text() != ""){  
			$(this).attr("title",$(this).text() + festerText);  
		}
	});
});
</script>
<body>
    <a href="#" class="content">Link 1</a> (mir wird ein Title hinzugefügt)<br />  
    <a href="#">Link 2</a> (mir nicht)<br />  
    <a href="#">Link 3</a> (mir auch nicht)<br />  
</body>
</html>
d4shoerncheN
d4shoerncheN 20.05.2014 um 13:02:16 Uhr
Goto Top
Moin,

jetzt funktioniert es. Ich hatte noch einen anderen Link zur JQuery-Datei.

Vielen Dank.

Gruß