0

クリックしたリンクの前に配置された画像のsrcを取得しようとしています。

<ul id="grid">
        <li><a href="prod-det.php" class="tip" rel="product-tip.php"><img src="../upload/mainmenu-articolo-ico.jpg" width="110" height="115"><p>GSE29KGYCSS / GSE29KGYCWW</p></a>
        <div class="options">
            <a href="#briciole" class="opt-compare off">Compare</a>
            <a href="#briciole" class="opt-wish off">Wishlist</a>
        </div></li>

そしてこのパスを書いてください:

$('.options a').click(function() {
 $("#compare .myge-grid").append(closest('img').attr('src'));

しかし、私はimgsrcを取得できません。誰かが私を正しい方向に向けてくれませんか?事前にt​​ks

編集:ここでより多くのコードhttp://jsfiddle.net/X2NBn/1/

4

2 に答える 2

1

更新:
ドキュメントの構造によると、これはあなたが探しているものです:

$("img", $(this).parents('li:first')).attr("src");

注:HTMLソース('../upload.png')で定義さattr("src")れているとおりに戻ります。フルパスが必要な場合は、代わりにを使用してください。src .prop("src")


古い答えメソッド
を使用するJQueryオブジェクトを定義する必要があります.closest()

現在、jQueryメソッドを使用していません.closestが、(おそらく未定義の)closest()関数を使用しています。

追加した後、これは意図したとおりに機能するはず$(this)です:

$('.options a').click(function() {
    $("#compare .myge-grid").append($(this).closest('img').attr('src'));

于 2011-10-11T16:04:42.060 に答える
0

closestは魔法ではありません。「視覚的に最も近い」という意味ではありません。「最も近い祖先」という意味です。Rob Wの回答のように、要素がクリックされるたびにリスト項目を検索するのではなく、次のように、リスト項目を反復処理し、クリックハンドラーをそれぞれに順番にバインドすることをお勧めします。

$('#grid li').each(function() {
    var item = $(this);
    item.find('.options a').click(function() {
        $("#compare .myge-grid").append(item.find('img').attr('src'));
    });
});
于 2011-10-11T16:37:33.877 に答える