2010-12-02 92 views
0

我需要你的帮助创建一个jQuery的功能为复选框,当这些被禁用,几乎我想做的事情,如果输入有属性禁用应用CSS旁边的标签,如果不是什么都不做。在此先感谢您的帮助。jquery新手问题

的HTML看起来是这样的:容易

<div class="add-filters"> 
    <table> 
    <tr> 
     <td> 
     <input type="checkbox" id="filter" name="filter" disabled="disabled" /> 
     <label for="filter">Filter</label> 
     </td> 
    </tr> 
    </table> 
</div> 
+0

奥兹,如果你关心性能,你应该考虑的是不使用循环的解决方案。 – Stephen 2010-12-02 17:12:56

回答

1
$('input[type="checkbox"]').each(function() { 
    if($(this).attr('disabled')) { 
    $(this).siblings('label').addClass('newClassName'); 
    } 
}); 
+0

对不起,编辑;在我的部分错误。 – 2010-12-02 17:05:05

+0

这对我的口味来说太过分了。 ;) – Stephen 2010-12-02 17:05:07

+0

@Stephen - 你的答案看起来不错。我认为我的情况是,不仅仅是复选框类型的输入,以及在标签不是在输入之后。 – 2010-12-02 17:07:17

0
$(function() { 
    $("input[disabled], textarea[disabled]").each(function() { 
    $(this).next('label').css('color','#0000FF'); 
    }); 
});
1

方式来阅读:

$('input:checkbox:disabled').next().css({color:'#000'}); // use your own styles. 

或类:

$('input:checkbox:disabled').next().addClass('yourclass'); 

http://api.jquery.com/disabled-selector/

或者,如果你的DOM的变化,你可以这样做:

$('input:checkbox:disabled').siblings('label:first').addClass('yourclass'); 
3

您可以使用CSS3 :disabled伪类和后相邻的兄弟选择+

$("input:disabled + label").css(/* ... */); 

这将也可以在不支持CSS3的浏览器中使用JavaScript:

input:disabled + label { 
    color: silver; 
} 

工作演示:http://jsfiddle.net/g76U4/