我想在span标签中显示图片标题。我使用此代码,但span标记中没有显示任何内容。
<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>
我已经检查过,数据库中的标题不为空。我该如何解决?
答案 0 :(得分:3)
问题是,.next()
元素中的<img>
将为空 - 它是其周围<a>
标记中的最后一个(唯一)内容。尝试
$this.closest('a').next('span.showtitle').text($this.attr('title'));
答案 1 :(得分:2)
尝试此更改:
$('#thumb ul li a img').fadeIn(function() {
var $this = $(this);
$this.parent().next('.showtitle').append($this.attr('title'));
});
});
我添加了.parent()
。你的是在图像之后抓住“下一个”,但图像嵌套在一个链接中,标题范围跟在那个链接之后,而不是图像。