4

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>
4

4 に答える 4

12

タイトルは画像上にあり、<a>要素ではありません。

var photo_caption = $('img', this).prop('title');
于 2012-08-29T21:25:02.677 に答える
12

コードで、画像ではなくタグをthis参照します。a

試す:

$('img', this).attr('title');
于 2012-08-29T21:25:04.197 に答える
5

使用していますthisが、コードの場合は、title属性を持たないをthis参照しています。<a>あなたが使用する必要があります$(this).find('img').attr('title');

于 2012-08-29T21:25:28.800 に答える
2

thisはあなたのaタグであり、aありませんtitle(imgはありません)

Chromeとf12デベロッパーパネルで試してみてください。thisjavascriptコードにブレークポイントを設定し、いつでも正確に何であるかを調べることができます。

于 2012-08-29T21:26:12.787 に答える