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-Key: 238617

Url: https://administrator.de/contentid/238617

Printed on: April 19, 2024 at 20:04 o'clock

Member: colinardo
Solution colinardo May 20, 2014 updated at 11:02:40 (UTC)
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
Member: d4shoerncheN
d4shoerncheN May 20, 2014 at 10:47:58 (UTC)
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
Member: colinardo
colinardo May 20, 2014 updated at 10:49:15 (UTC)
Goto Top
Zitat von @d4shoerncheN:
so abänder, dass er nur die Links mit der Klasse "content" ändert?
exakt !
Member: d4shoerncheN
d4shoerncheN May 20, 2014 at 10:53:07 (UTC)
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
Member: colinardo
colinardo May 20, 2014 updated at 11:03:06 (UTC)
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>
Member: d4shoerncheN
d4shoerncheN May 20, 2014 at 11:02:16 (UTC)
Goto Top
Moin,

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

Vielen Dank.

Gruß