我正在尝试获取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()
时,结果会返回[]
。
答案 0 :(得分:5)
虽然你应该从不拥有多个具有相同ID的元素,但如果你这样做,你可以使用属性选择器选择它们:
$(this).siblings('[id=teacher]');
有关详细信息,请参阅:Several elements with the same ID responding to one CSS ID selector