2010-12-03 4 views
1

Je souhaite afficher le titre de l'image dans une balise span. J'utilise ce code, mais il n'y a rien dans la balise span.Jquery show img titre dans la plage

<script type="text/javascript" src="jquery-1.4.2.min.js" ></script> 
<script type="text/javascript"> 
jQuery(document).ready(function({ 
$('#thumb ul li a img').fadeIn(function() { 
     var $this = $(this); 
     $this.next('.showtitle').append($this.attr('title')); 
    }); 
}); 
</script> 
... 
<div class="thumb" id="thumb"> 
<ul class="ul"> 
<?php 
$result = mysql_query("SELECT * FROM ..."); 
$strstr=1; 
while ($row = mysql_fetch_array($result)) 
{ 
echo '<li class="li"><a href="' . $row['link']. '"><img src="'.$row['image'].'" title="'.$row['title'].'" class="img'.$strstr.'" /></a><span class="showtitle" /></li>'; 
$strstr++; 
} 
?> 
</ul> 
</div> 

J'ai vérifié, le titre n'est pas vide dans la base de données. Comment je le répare?

Répondre

2

Essayez ce changement:

$('#thumb ul li a img').fadeIn(function() { 
     var $this = $(this); 
     $this.parent().next('.showtitle').append($this.attr('title')); 
    }); 
}); 

J'ai ajouté dans le .parent(). Le vôtre saisit le "suivant" après l'image, mais l'image est imbriquée dans un lien, et la plage du titre suit ce lien, pas l'image.

+0

Merci, il peut fonctionner. –

+0

Pas de problème, heureux d'aider :) – Ender

3

Le problème est que .next() de votre <img> élément sera vide - c'est la dernière (seule) chose dans son environnement <a> tag. Essayez

$this.closest('a').next('span.showtitle').text($this.attr('title'));