我有下一个HTML代码:
<fieldset id="q1">
<legend>Quest 1</legend>
<div class="a1">
<label for="q2a1">Some text 1</label>
<select id="q2a1" name="q2a1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</div>
<div class="a2">
<select id="q2a2" name="q2a2">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
<label for="q2a2">Some text 2</label>
</div>
</fieldset>
基本思想:两个选择器的总和必须等于2.
示例:如果我在第一个选择器编号2中选择,则必须使用第二个选择器
只有0。如果我在第一个选择器编号1中选择,则第二个选择器必须
必须只有1.反之亦然。
如您所见,label
之前和之后可以找到标记select
。
我开始编写代码,但它坚持选择一个必要的孩子。
也可能无法使用id
的元素,因为形式非常大。
JS:
$('select').change(function(event) {
var c;
c = 3 - $(this).val();
options = '';
for (var i = 0; i <= c; i++) {
options += '<option value="' + i + '">' + i + '</option>';
}
alert($(this).parent().parent().html());
});
有什么想法吗?感谢。
答案 0 :(得分:2)
您不必查找元素,只需使用.val(value)
,jQuery就可以为您付出艰苦的努力:
$('select').bind('change keyup click', function(){
var $this = $(this);
var $other = $this.closest('fieldset').find('select').not(this);
var selectedValue = parseInt($this.val(), 10);
$other.val(2 - selectedValue);
});
我添加了keyup
和click
个事件,因此它可以很好地与鼠标和键盘配合使用。