Estoy usando lo siguiente para agregar un atributo de destino _blank a todos mis enlaces externos
$.expr[':'].external = function(obj) { return (obj.hostname != location.hostname) && obj.href.startsWith("http"); }; $('a:external').attr('target', '_blank');Ahora, me gustaría hacer lo mismo con todos los enlaces que son elementos primarios de las imágenes.
<a href="..."><img></a>¿Cómo puedo crear un selector para apuntar a estas instancias?
Para apuntar a elementos que contienen otro elemento específico, puede usar el selector : :has() :
$('a:has(img)').prop('target', '_blank'); Además, como un comentario aparte, la lógica del selector :external se puede hacer más sucinta con una función de flecha:
$.expr[':'].external = obj => (obj.hostname != location.hostname) && obj.href.startsWith("http");