0

私は以下のコードを持っています:

    <ul>
    <li id="1">same html structure as below...</li>
    .....
    <li id="42">
    <div class="input-prepend">
       <button class="btn btn-small companyListBtn addMarkerBtn btn-primary btn-warning" type="button">   </button>                                                                                   
       <input class="input-medium companyListInput" maxlength="60" type="text"/>
       <button class="companyListBtn editCompanyBtn" type="button"></button>
    </div>
    <div id="42Div" class="companyAddressDiv">
       <input type="text" id="test" class="companyAddress" placeholder="Enter the Address"/>
       <button  class="btn btn-small compAddressSubmit" style="height:30px;margin-top:-9px;" type="button"></button>
    </div>
    </li>
    </ul>

次のコードでは、同じリスト内にあるaddMarkerBtnの情報を変更しようとしています...:(同じ構造のリストが複数あるため)

 $(document).on('click','.compAddressSubmit', function () {
    var addMarkerBtn = $(this).prev("div.row").find('.addMarkerBtn');
    //wanna make changes to the addMarkerButton .. something like..
    addMarkerBtn.removeClass('btn-primary btn-warning').addClass('btn-success');
    }

closest()、next()を試しましたが、機能しませんでした。助けてください...

4

3 に答える 3

5

両親

 var addMarkerBtn = $(this).parents("li").find('.addMarkerBtn');
于 2013-01-15T12:58:14.073 に答える
0

を含む複数のdivがある場合#compAddressSubmit、ドキュメントは無効です。id値は一意である必要があります。ボタンのように聞こえますが、id compAddressSubmit代わりにクラスとしてそれを持っている必要があります。

あなたがその変更を行ったと仮定すると、次のようになります:( 質問でその変更を行ったようです。)

それで:

$(document).on('click','.compAddressSubmit', function () {
    var addMarkerBtn = $(this).closest("div.companyAddressDiv").prev().find('.addMarkerBtn');
    addMarkerBtn.removeClass('btn-primary btn-warning').addClass('btn-success');
}

$(this).closest("div.companyAddressDiv")companyAddressDivボタンを含むを見つけます。prev前の要素(そのdiv上)に移動し、そのfind(".addMarkerBtn")中のボタンを見つけますdiv

構造が変更されて、直前の要素が目的の要素にならない可能性がある場合は、の代わりにをdiv.companyAddressDiv使用.prevAll("div.input-prepend").first()して取得できます。div.prev()

于 2013-01-15T12:57:02.057 に答える
0

これを試して

var addMarkerBtn = $(this).parents().eq(2).find('.addMarkerBtn');
于 2013-01-15T13:01:51.947 に答える