0

要素がいつ変更されたかをjqueryに確認させ、次のように兄弟を含むアクションを実行しようとしています:

$('.row').find('#class').change(function(){
        $(this).siblings('#teacher').removeAttr('disabled');
        var class_id = $(this).val();
    });

そのため、id の入力classが変更されると、その値が取得され、id の兄弟に影響しteacherます。それらは両方とも内側にあり<div class="row">、これはページ上で数回繰り返されます。

HTML:

<div class="row">
    <div class="grid_2">
        <select name="class" id="class">
        <option></option>
            //PHP that loads choices
        </select>
    </div>

        <div class="grid_2">
            <select name="teacher" id="teacher" disabled="true">
                 //Ajax loads choices
            </select>
        </div>
</div>

これは、ページ全体で数回繰り返されます。

私が助けを必要としているのは、最初の選択ボックス (その隣) が変更されたときに 2 番目の選択ボックスを選択する方法です。

助けてくれてありがとう。

編集: console.log しようとすると、結果として$(this).siblings()戻ってきます。[]

4

1 に答える 1

5

同じIDを持つ複数の要素を持つべきではありませんが、そうする場合は、属性セレクターを使用してそれらを選択できます。

$(this).siblings('[id=teacher]');

詳細については、以下を参照してください。1つのCSSIDセレクターに応答する同じIDを持つ複数の要素

于 2012-07-19T22:09:28.977 に答える