0

私は次のhtmlを持っています。

<input class="gallery-next1" type="hidden" value="2"><a href="#" class="gallery-next" >unu</a></input>

そして次のjquery

$(".gallery-next").click(function (){
     alert($(this).closest("input").val());
});

このクエリはアラート「未定義」に表示されます。値 2 が得られない理由はありますか?

さて、1 はどこにでもあります。このクラスを同じ関数にバインドして、イベントを発生させるオブジェクトを取得するにはどうすればよいですか?

<input class="gallery-next1" type="hidden" value="1"><a href="#" class="gallery-next" >unu</a>
<input class="gallery-next1" type="hidden" value="2"/><a href="#" class="gallery-next" >doi</a>
<input class="gallery-next1" type="hidden" value="3"/><a href="#" class="gallery-next" >trei</a>
4

1 に答える 1

2

マークアップが無効です。

<input>要素には終了タグがないため、ブラウザは<a>要素を の後に設定するだけでエラーを修正しようとします<input>

マークアップを修正して、 または のいずれsiblings()かを使用しprev()ます。

$(".gallery-next").click(function() {
    alert($(this).siblings("input").val());  // or $(this).prev().val();
});

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

于 2012-12-08T01:47:26.330 に答える