2012-08-02 100 views
2

我想对“在结帐时包含以上内容”一语做上述主题。当我通过Firebug进行调试时,脚本中的正确行被击中,但颜色不会改变。为复选框标签设置颜色

有人可以告诉我什么是错?

HTML

<td colspan="7" valign="middle" align="left" class="underline" style="line-height: 20px;padding: 0; color: #fff;"> 
    <span class="eg_checkbox" style="font-weight:bold;"> 
     <input id="ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit" type="checkbox" name="ctl00$mainContentPlaceHolder$datalistDTO$ctl01$chkShiptoSubmit" checked="checked" onclick="javascript:setTimeout('__doPostBack(\'ctl00$mainContentPlaceHolder$datalistDTO$ctl01$chkShiptoSubmit\',\'\')', 0)"/> 
     <label for="ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit">Include items above during check out</label> 
    </span> 
</td> 

JS

$(document).ready(function() { 
    if ($('#ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit').is(':checked')) { 
     $('label[for=#ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit]').css('color', 'red'); 
    } 
    else { 
     $('label[for=#ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit]').css('color', 'blue'); 
    } 
}); 

+0

出事了你的缩进... – elclanrs 2012-08-02 19:54:52

回答

3

你 '的' 选择是错在你的jQuery:

$(document).ready(function() { 
    if ($('#ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit').is(':checked')) { 
     $('label[for="ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit"]').css('color', 'red'); 
    } 
    else { 
     $('label[for="ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit"]').css('color', 'blue'); 
    } 
});​ 

DEMO

4

您不应该在您的属性选择器中使用#登录,而不是多次选择元素以缓存选择器,并使用next()方法选择下一个元素。尝试以下方法:

$(document).ready(function() { 
    var $checkbox = $('#ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit'); 
    if ($checkbox.is(':checked')) { 
     $checkbox.next('label').css('color', 'red'); 
    } 
    else { 
     $checkbox.next('label').css('color', 'blue'); 
    } 
}); 

DEMO

0

http://jsfiddle.net/NbVUm/

HTML:

<table><tr> 
<td colspan="7" valign="middle" align="left" class="underline" 
    style="line-height: 20px; padding: 0; color: #fff;"> 
    <span class="eg_checkbox" style="font-weight:bold;"> 
    <input id="ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit" 
     type="checkbox" 
     name="ctl00$mainContentPlaceHolder$datalistDTO$ctl01$chkShiptoSubmit" 
     checked="checked" /> 
    <label for="ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit"> 
     Include items above during check out 
    </label> 
    </span> 
</td> 

</tr></table> 

JS:

$(function() 
{ 
    var cb = $(':checkbox'); 
    cb.change(on_cb_changed); 

    on_cb_changed(); 

    function on_cb_changed() 
    { 
    var label = cb.next('label'); 

    label.css('color', cb.is(':checked') ? 'red' : 'blue'); 
    } 
}); 
+0

哦,我删除从HTML onclick句柄 – 2012-08-02 20:03:00

1

这是您的#。勾选此jsFiddle

通知的for=ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit