我正在尝试检索title属性并用它替换当前段落文本。关于我的脚本的其他所有内容都完美无缺。 title属性将返回“undefined”。我是javascript的新手,我已经看了很多答案......到目前为止我没有看到任何东西。
JS:
$(document).ready(function(){
$('.thumbnails a').click(function(e){
e.preventDefault();
$('.thumbnails a').removeClass('selected');
$('.thumbnails a').children().css('opacity','1');
$(this).addClass('selected');
$(this).children().css('opacity','.4');
var photo_caption = $(this).attr('title');
var photo_fullsize = $(this).attr('href');
var photo_preview = photo_fullsize.replace('_large','_preview');
$('.preview').html('<a href="'+photo_fullsize+'" title="'+photo_caption+'" style=background-image:url('+photo_preview+')></a>');
$('.caption').html('<p><a href="'+photo_fullsize+'" title="'+photo_caption+'">View larger</a></p><p>'+photo_caption+'</p>');
});
});
HTML:
<li>
<a href="images/webdesign/indiePantry_large.jpg" target="_blank">
<img src="images/webdesign/indiePantry_thumbnail.jpg"
width="160" height="160" title="Indie Pantry" />
</a>
</li>
答案 0 :(得分:12)
标题位于图片上,而不是<a>
元素:
var photo_caption = $('img', this).prop('title');
答案 1 :(得分:12)
在您的代码中,this
引用了a
代码,而不是图片。
尝试:
$('img', this).attr('title');
答案 2 :(得分:5)
您使用的是this
,但就您的代码而言,this
指的是没有title属性的<a>
。您需要使用$(this).find('img').attr('title');
答案 3 :(得分:2)
this
是您的a
代码,a
没有title
(img可以)
尝试通过chrome和f12开发人员面板。您可以在javascript代码中设置断点,并随时检查this
的精确度。