看看演示。为什么 prevall 不会影响<select>
跨度内的内容?(或者,我怎样才能让它这样工作?)
问问题
92 次
4 回答
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);
}
});
于 2012-09-17T05:45:37.933 回答
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);
}
});
于 2012-09-17T05:46:45.137 回答
0
这是因为,在第一种情况下,prevAll 返回前一个兄弟,在这种情况下,span 元素没有被禁用,但不是 select 元素。所以选择元素没有被禁用。在第二种情况下,选择元素被选中并禁用。要在第一种情况下工作,您应该在 span 元素中找到 select。
$(this).prevAll().find('select').attr('disabled', true);
于 2012-09-17T05:47:02.353 回答
0
这是因为 prevAll 选择了“兄弟”,而“select”不是它的兄弟,“span”是。所以你可以使用“thecodeparadox”的建议。
于 2012-09-17T05:47:11.953 回答