首页 > 解决方案 > 选择深度嵌套的复选框需要使用 jQuery 选择父复选框

问题描述

我正在尝试选择一个深度嵌套的子复选框,这样做时,我的 jQuery 代码还将在 DOM 中选择其上方的父复选框。然后,我想通过使用深度嵌套的子复选框的 ID 来存储父复选框的 ID。

我的示例代码无法正常工作。

示例:JSFiddle

代码:

<form action="" method="POST" id="RoleForm">
  <div class="form-group">
    <label>Role Name</label><input id="rolename" required="" class="form-control" name="rolename" placeholder="Add Role Name" type="text">
  </div>
  <div class="form-group">
    <label>Role Description</label>
    <textarea id="roledesc" required="" class="form-control" name="roledesc" placeholder="Add Role Description"></textarea>
  </div>
  <div class="form-group">
    <ul>
      <li style="display: block; width: 100%;float: left;">
        <input name="page" value="page-1" type="checkbox">Cockpit <br>
        <ul>
          <li style="display: block;width: 20%;float:left;">
            <input name="action" value="action-1" type="checkbox">Update Deposit Amount <br>
          </li>
          <li style="display: block;width: 20%;float:left;">
            <input name="action" value="action-2" type="checkbox">Pay To Captain <br>
          </li>
          <li style="display: block;width: 20%;float:left;">
            <input name="action" value="action-3" type="checkbox">My Action <br>
          </li>
        </ul>
      </li>
      <li style="display: block; width: 100%;float: left;">
        <input name="page" value="page-2" type="checkbox">Dashboard <br>
        <ul>
          <li style="display: block;width: 20%;float:left;">
            <input name="action" value="action-2" type="checkbox">Update Deposit Amount <br>
          </li>
          <li style="display: block;width: 20%;float:left;">
            <input name="action" value="action-1" type="checkbox">Pay To Captain <br>
          </li>
        </ul>
      </li>
      <li style="display: block; width: 100%;float: left;">
        <input name="page" value="page-5" type="checkbox">TestPage <br>
        <ul>
          <li style="display: block;width: 20%;float:left;">
            <input name="action" value="action-2" type="checkbox">Pay To Captain <br>
          </li>
        </ul>
      </li>
    </ul>
  </div>
</form>

jQuery:

var pageArray = [];
var actionArray = [];
$('input[name="page"]:checked').each(function() {
  pageArray.push($(this).val());
  $('input[name="action"]:checked').each(function() {
    actionArray.push($(this).val());
  });
});
alert(actionArray);

标签: javascriptphpjqueryarrayscheckbox

解决方案


推荐阅读