2010-12-02 84 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/