2010-12-16 134 views
3

Jusqu'à présent, j'ai ceci:Je veux obtenir l'attribut title d'une image et l'ajouter au lien autour

var imageTitle = $("a.articleimages img").attr("title"); 

$('a.articleimages').attr('title', (imageTitle)); 

Le problème est qu'il prend le premier titre de l'image et le répète sur tous les liens. Je peux le retirer avec des ID mais cela crée beaucoup de code parce que vous avez # image1, puis # image2 et ainsi de suite. Ce qui me semble excessif et stupide, il doit y avoir un moyen plus facile/meilleur. Peut-être qu'il y a un moyen de savoir quelle image a été cliquée et de tirer le titre de cette image.

Je veux faire ceci pour que les utilisateurs n'aient pas à retaper un titre d'image pour qu'il soit vu sur Fancybox.

S'il y a un moyen de modifier fancybox et l'obtenir pour saisir le titre de l'image miniature et montrer que pour l'image en taille réelle alors je serais heureux avec ça aussi.

Merci

Répondre

2

Étant donné que le img est un enfant de la a que vous souhaitez définir le title pour vous pouvez essayer quelque chose comme ceci:

$('a.articleimages img').each(function(idx, element) { 
    $(element).parent().attr('title',$(element).attr('title')); 
}); 
+0

Cela fonctionne également aussi. Merci. –

+0

Vous obtenez la réponse acceptée, j'ai décidé de choisir au hasard, car il y a tellement de réponses qui fonctionnent. Merci à tous :) –

1
var imgs = $("a.articleimages img"); 

imgs.each(function(i, ele){ 
    var img = $(ele); 
    var title = img.attr('title'); 
    img.parent('a').attr('title', title); 
}); 
+0

Merci fonctionne parfaitement . –

+0

si cela a fonctionné, apprécierait un vote – Jason

+0

Première chose que j'ai essayé de faire, mais apparemment j'ai besoin de 15 réputation, de sorte qu'il ne me laisse pas. Un jour, quand j'aurai 15 points de réputation, je reviendrai et vous obtiendrez le vote que vous méritez vraiment. –

2
$("a.articleimages img").each(function() { 
    var $this = $(this); 
    $this.parent().attr('title', $this.attr('title')); 
});