jquery - 如果在 .ready 上选中复选框,则添加Class

标签 jquery

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

这是我所做的:

我加载了保存的值(0 或 1),然后使用 php 选中该框(如果 value == 1)。

<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') 是将新类添加到行的正确方法吗?

最佳答案

this 不会是 .tax。它将是文档

你应该说:

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

 $('.tax:checked').closest('tr').addClass('extraClass');
.extraClass {
  background-color: red;
}
<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>

关于jquery - 如果在 .ready 上选中复选框,则添加Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27237788/

相关文章:

javascript - 我如何处理 jQuery 中的append() 方法?

jquery - 附加到 html 的元素通过单击事件不可见

javascript - 使用 jQuery 更改文本值 HTML

javascript - 使 div 滚动直到到达页面顶部然后固定

javascript - 检测用户输入的文本框的值

jquery - 如何使用 jquery 验证输入数组中的至少一个输入

javascript - 了解 javascript/jquery 事件 : why does this alert fire four times?

jquery - 使用 jsonp 内容类型进行 jQuery.ajax 请求后出现解析器错误

javascript - 将数据加载到 Web 应用程序中

ajax - 在ajax的div.append中的id属性中添加变量