Если <img>
находится внутри якоря, вы можете сделать это так:
$("a[href*='http://'], a[href*='https://']").not("[href*='"+location.hostname+"']").each(function() {
var $this = $(this).addClass("external").attr("target","_blank");
var img = $this.children('img[alt]');
$this.attr("title", img.length ? img[0].alt : "Open link in new window");
});
Здесь есть несколько изменений, ваш текущий селектор смотрит только на <a>
в первом http://
check, но затем просматривает все элементов в вашем https://
чеке, так что это будет намного эффективнее.Затем мы проверяем, имеет ли текущий элемент <img>
внутри, если он есть, и у него есть атрибут alt
, который мы используем, в противном случае мы даем ему заголовок по умолчанию.
Или другой метод,используйте то, что у вас есть (измените селектор, чтобы он работал эффективнее), а затем установите заголовки для якорей, которые содержат изображения, например:
$("a.external > img[alt]").each(function() {
$(this).parent().attr("title", this.alt);
});