2

各リスト項目に画像とタイトルが含まれるリストを作成しました。画像の alt タグと title タグをリスト アイテムのタイトルと同じにしたいのですが、正しく動作しません。現時点では、すべてのタイトルをすべての img タグに取得しています (これは私の js から期待されます) が、最初の$('ul li img')のみを取得$('ul li').text()し、2 番目のを取得する方法がわかりません。$('ul li').text()など

HTML:

<ul>
<li><img src="path.jpg" /><p>Title 1</p></li>
<li><img src="path.jpg" /><p>Title 2</p></li>
</ul>

JS:

$(document).ready(function() {
$('ul li img').each(function() {
    var valueTitle = $('ul li').text();
    $(this).attr({
        alt: valueTitle,
        title: valueTitle
    });
});
}); 
4

1 に答える 1

2

<p>要素はすべて<img>の後に続くため、次のようになります。

$("ul li img").each(function() {
    var $this = $(this),
        valueTitle = $this.next("p").text();

    $this.attr({
        alt: valueTitle,
        title: valueTitle
    });
});

デモ: http://jsfiddle.net/cquJX/

于 2013-01-30T12:39:17.653 に答える