Aktuell habe ich ziemlich viel mit Tracking und Tag-Managern zu tun. Dabei habe ich schon die fürchterlichsten jQuery-Selektoren gebaut. Bei diesem hier glaube ich, dass es noch mehr Leute gibt, die ihn gut gebrauchen können und wollte ihn deshalb der Öffentlichkeit nicht vorenthalten. ;)

Er basiert auf einem Artikel in stackoverflow und prüft auf eine Liste von Dateierweiterungen, die im href-Attribut der a-Tags vorkommen. Der ternäre Operator checkt sicherheitshalber, ob ein href überhaupt vorhanden ist. Sonst fällt das Skript ggf. auf die Nase. Anschließend wird bei Klick auf ein a-Tag der Link-Text des jeweiligen Tags ausgegeben. Hier lässt sich natürlich wunderbar ein Tracking-Aufruf einbauen.

Hier der Code:

jQuery("a").filter(function(){
  return (jQuery(this).attr("href") ? jQuery(this).attr("href").match(/\.(pdf|doc|docx|ppt|pptx|xls|xslx|jpg|zip|txt)$/i) : null);
}).click(function(){
  console.log(jQuery(this).text());
});

Und als kleine Zugabe noch die Lösung, die den Dateinamen ausgibt. Das war bei uns etwas kniffliger, weil der Dateiname ja meist mit komplettem Pfad angegeben ist. Zur Identifikation im Tracking-System reicht aber typischerweise der Dateiname ohne Pfad.

jQuery("a").filter(function(){
  return (jQuery(this).attr("href") ? jQuery(this).attr("href").match(/\.(pdf|doc|docx|ppt|pptx|xls|xslx|jpg|zip|txt)$/i) : null);
}).click(function(){
  var arrFilename = jQuery(this).attr("href").split('/');
  var filename = arrFilename[arrFilename.length-1];
  console.log(filename);
});

Freue mich über Korrekturen, Anmerkungen, Likes und Links! ;)