2

特定のブロックから始めて、divjquery を使用して、次のブロック (2 レベル下)のinputタグの値を取得します。div次のような HTML 構造があります。

<div class="firstClass1" id="firstID1"> // suppose I start from this element
    <div class="secondClass1" id="secondID1">
        <input value="myValue1"/>
    </div>
</div>
<div class="firstClass2" id="firstID2">
    <div class="secondClass2" id="secondID2">
        <input value="myValue2"/>
    </div>
</div>
<div class="firstClass3" id="firstID3">
    <div class="secondClass3" id="secondID3">
        <input value="myValue3"/>
    </div>
</div>
...

つまり、 から開始する場合、.firstClass1から値を取得したいと考えていますmyValue2。次の jquery を使用してみましたが、うまくいきません。

var nextID = $('.div#firstID1').next().find('input').val();

var nextID = $('.div#firstID1').next().next().val();
4

4 に答える 4

3

これは役立ちます:http://jsfiddle.net/bQYZJ/

余分な.ドットidfirstID1ありfirstID :)、必要に応じて調整しました。

この助けを願って、

コード

var nextID = $('div#firstID1').next('div').find('input').val();
于 2012-07-08T21:06:33.897 に答える
1

引用符を忘れた場合は、 from も削除dot.div#firstID1ます。

var nextID = $('div#firstID').next().find('input').val();
于 2012-07-08T20:56:40.540 に答える
1

.divを単に に置き換えdivます。

試してみてください:

$('div[id^=firstID]').mouseenter(function(){
    var nextID = $(this).next().find('input').prop('value');
    alert( nextID ); // test it!
});

$('div[id^=firstID]')「IDがで始まる任意のdiv」を意味しますfirstID
これにより、「イベント化された」要素の「次のdiv入力値」を取得できるため、要素のコードを書き直す必要はありませんfirstID[N]

于 2012-07-08T20:57:19.747 に答える
0

また、_

var nextID = $('div#firstID1 > div > input')

また

var nextID = $('div#firstID1').children().children()

また

var nextID = $('div#firstID1').children('div').children('input');

しかし、(私にはわからない理由で)、アプローチよりfindも速く動作します。children>

于 2012-07-08T21:51:29.793 に答える