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>

这在整个页面中重复了几次。

我需要帮助的是如何在第一个(旁边)更改时选择第二个选择框。

谢谢您的帮助。

编辑:当我尝试 console.log$(this).siblings()时,它会返回[]

4

1 回答 1

5

虽然您永远不应该拥有多个具有相同 ID 的元素,但如果这样做,您可以使用属性选择器来选择它们:

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

有关详细信息,请参阅:具有相同 ID 的多个元素响应一个 CSS ID 选择器

于 2012-07-19T22:09:28.977 回答