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');
    }
});

4

4 に答える 4

4

属性セレクターでsignを使用しない#でください。要素を複数回選択する代わりに、セレクターをキャッシュして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');
    }
});

デモ

于 2012-08-02T19:59:48.643 に答える
3

'for'セレクターが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');
    }
});​

デモ

于 2012-08-02T19:58:12.843 に答える
1

それはあなた#でした。このjsFiddleを確認してください

に注意してくださいfor=ctl00_mainContentPlaceHolder_datalistDTO_ctl01_chkShiptoSubmit

于 2012-08-02T20:13:59.650 に答える
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');
  }
});
于 2012-08-02T20:02:31.533 に答える