看看演示。为什么不会影响范围内的<select>
? (或者,我怎么能让它以这种方式工作?)
答案 0 :(得分:0)
$('.test').bind("propertychange keyup input paste", function(event){
if ($(this).val() != '') {
$(this).prevAll().find('select').attr('disabled', true);
} else {
$(this).prevAll().find('select').attr('disabled', false);
}
});
的 Demo 强> 的
答案 1 :(得分:0)
您的第一个select
是跨度,第二个不是span
..我认为这是一个错字。
答案假设第二个select
也在范围
$('.test').bind("propertychange keyup input paste", function(event){
if ($(this).val() != '') {
$(this).prev().find('select').attr('disabled', true);
} else {
$(this).prev().find('select').attr('disabled', false);
}
});
答案 2 :(得分:0)
这是因为,在第一种情况下,prevAll返回前一个兄弟,在这种情况下是未禁用但不是select元素的span元素。因此不禁用select元素。在第二种情况下,选择和禁用选择元素。要在第一种情况下工作,您应该在span元素中找到select。
$(this).prevAll().find('select').attr('disabled', true);
答案 3 :(得分:0)
这是因为prevAll选择“兄弟姐妹”而“选择”不是它的兄弟姐妹,“span”是。所以你可以使用“thecodeparadox”建议的内容。