如何在jQuery中获取输入数组索引值作为变量

时间:2018-08-01 09:40:39

标签: jquery

我的html表单设计为以下结构

<ul>
    <li><input type='checkbox' value='car' name='menu[]' value='vehicle'>Sports
        <ul>
            <li><input type='checkbox' name='submenu[vehicle][car]'>Car</li>
        </ul>
    </li>
</ul>

我需要在jquery中访问二维数组的索引。第一个索引将是其父li的输入值,并且该值存储在jquery变量中,如下所示(在代码段中),如何访问数组的第二个索引?我需要这样的jQuery

var menu = vehicle
var submenu = car

以下示例将有助于阐明问题。

$(document).ready(function() {
  $(document).on('change', 'input[name="menu[]"]', function() {
    var nav = [];
    $("input[name='menu[]']:checked").each(function() {
      nav.push(this.value);
    });
    alert(nav);

// What can I --

    var subnav = [];
    $("input[name='submenu[][]']:checked").each(function() {
      subnav.push(this.value);
    });

    alert(subnav);

  });

// -- do here to get index not value ?

  $('[name="submenu[][]"]').parent().each(function() {
    if ($(this).children("ul").length) {
      $(this).parents('[name="menu[]"]').click(false);
    }
  })
  $('li:has(> ul)').find('[name="menu[]"]').click(false);
  $('[name="menu[]"] + ul input').click(function() {
    $(this).closest("ul").prev("input").prop("checked", ($(this).closest("ul").find("input:checked").length > 0));
  });

});
ul li {
  list-style: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>

<head>
</head>

<body>
  <ul>
    <li><input type="checkbox" value='sport' name='menu[]'>Sports</li>
    <li><input type="checkbox" value='vehicle' name='menu[]'>Vehicle
      <ul>
        <li><input type='checkbox' value='car' name='submenu[vehicle][car]' value='car'>Car</li>
        <li><input type='checkbox' value='car' name='submenu[vehicle][bike]' value='car'>Bike</li>
      </ul>

    </li>

  </ul>
</body>

</html>

0 个答案:

没有答案