0

私は次の構造を持っています:

<div class="foo">
     <div class="moo">
            <div class="too"> <input type="hidden" val="56"/></div>
     </div>       
</div>
<div class="foo">
     <div class="moo">
            <div class="too">  <input type="hidden" val="58"/></div>
     </div>       
</div>

続く...

//jQuery Code
$('.too').live('click',function(){
  var next_value = $(this).next('.too').find('input').val();
  console.log(next_value);
});

次に、次の「あまりにも」入力の値が必要です。どうすればこれを入手できますか?動いていない。

4

3 に答える 3

4

あなたの問題は、.next()兄弟要素をトラバースすることです。1つのアプローチは、DOMツリーを上ってから、下に戻ることです。例えば:

$('.foo').on('click', '.too', function () {
  var next_value = $(this).closest('.foo').next().find('input').val();
});

また、を避けるようにしてください.live()。jQuery 1.7以降を使用している場合は、.on()(私の例に示すように)使用することをお勧めします。1.7より前のものを使用している場合は、.delegate()またはを試してください.bind()

于 2012-11-29T06:27:03.020 に答える
1

まず、使用しないでください.liveイベント委任を使用します。

第二に、.next兄弟でのみ機能します。.fooさまざまな方法で次の兄弟を取得できます。 /構造がドキュメントに固有であると仮定すると.too、次のように使用できます。

var next_value = $(".too").eq($('.too').index(this) + 1);
于 2012-11-29T06:30:54.793 に答える
0
$('.too').live('click',function(){
  var next_value = $(this).parent('.foo').next().find('input').val();
  console.log(next_value);
});

ところで、私はあなたがあきらめるべきだと思います.live()

于 2012-11-29T07:46:31.887 に答える