0

jquery 1.3.2 を使用しています。常に「wrapID-」で始まるクラス名の一部に基づいて、クリックされたボタンに最も近い div を取得したいと思います。基本的に、同じ ID を持つページに 2 つの送信フォームがあります。各送信フォームの近くに製品画像があります。クリックされたボタンに基づいて画像を印刷する必要があります。コードが機能しません。何が問題なのですか? 私は html にアクセスできません。同じ ID が無効であることは承知しています。

$(document).ready(function(){ 

$('.form-submit').click(function() {
var closestwrap = $(this).closest('div[class^="wrapID-"]');
cls = closestwrap.attr('class');
$('.'cls+' img').printElement();
}                           
});

ここに私のコードがありますhttp://jsfiddle.net/gPJrB/3/

4

1 に答える 1

0

別のセレクターを構築しようとしても無駄です。これは一般的に機能しないだけでなく (closestwrap複数のクラスがあるとどうなるでしょうか?)、非効率的でもあります。

findonを使用して要素closestwrapを見つけるだけです。img

$(document).ready(function(){ 
    $('.form-submit').click(function() {
        var closestwrap = $(this).closest('div[class^="wrapID-"]');
        closestwrap.find('img').printElement();
    });                  
});

$.printElementこれはjQueryプラグインだと思いますか?次回の質問にリンクを含めていただけると助かります。

編集:フィドルを確認したところ、HTML 構造が少しぎこちなかったようです。送信ボタンをwrapID-* divs 内に移動したので、closest実際にはdiv. フィドルをチェックしてください!

このプラグインは jQuery 1.9 以降では機能しないことに注意してください。最も互換性の高いバージョンは 1.8 です。これは$.browser、1.9 で削除されたブラウザー スニッフィングの非推奨のプロパティを使用するためです。jQuery Migrate プラグイン (このフィドルのように) を使用するか、自分でプラグインを更新できます。これらのブラウザー テストは、これらのブラウザーの最新バージョン用に改訂する必要がある可能性があります。

于 2013-06-08T12:47:41.323 に答える