如果选中复选框.ready,addClass

时间:2014-12-01 21:36:43

标签: jquery

我正在加载以前保存的表单,以便使用我的数据库中保存的值进行编辑。我试图让jQuery确定页面加载时复选框的状态。

这就是我所做的:

我加载了保存的值(0或1),如果值== 1,则使用php检查框。

<tr class="line">
  <td class="text-center"><input class="tax" type="checkbox" name="taxable" 
   value="{{$item->taxable}}"  <?php echo ($item->taxable == 1) ? 'checked="checked"' : ''; ?>/
  </td>
</tr>

接下来,我尝试使用jQuery查看是否在document.ready()上选中了.tax复选框,然后将新类添加到该行:

$(document).ready(function(){

if ($('.tax').is(':checked')){
      $(this).closest('tr').addClass("extraClass");
    };
 //more jquery

我的问题:.is(':checked')文件是否准备就绪?如果没有,在页面加载时查看框是否被检查的正确方法是什么?

如果该部分是正确的,$(this).closest('tr')是将新类添加到行的正确方法吗?

2 个答案:

答案 0 :(得分:2)

this不会是.tax。它将是document

你应该说:

$('.tax:checked').closest('tr').addClass('extraClass');

&#13;
&#13;
 $('.tax:checked').closest('tr').addClass('extraClass');
&#13;
.extraClass {
  background-color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr class="line">
    <td class="text-center"><input class="tax" type="checkbox" name="taxable" 
     value="1"  checked="checked"
    </td>
  </tr>
  <tr>
    <td class="text-center"><input class="tax" type="checkbox" name="taxable" 
     value="0"  
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您需要存储$('.tax')$(this)范围不适用于if块)。所以,可能是这样的:

$(function(){ // aka $(document).ready(function(){
  var $tax = $('.tax');
  if ($tax.is(':checked')){
    $tax.closest('tr').addClass('extraClass');
  }
});

更简洁地说,您可以使用:

$(function(){
  $('.tax:checked').closest('tr').addClass('extraClass');
});