我仅想获取父复选框的值,而未选中它的父复选框。例如,如果我检查Manager 1,则我只能得到Manager1。总裁也是如此。但是,如果我检查Assistant Manager 1至3,则应该只获得Assistant Manager 1至3。

我有这个JS,但我坚持使用if($(txtbox).is(':checked')== false)这行。即使未选中父项,它始终返回true。

这是JS代码段:

$('#xxx').on('click',function () {
     var hid = new Array();
     var counter = 0;

     $('ul li input[type=checkbox]').each(function () {
         if($(this).is(':checked')){
           var chk = $(this);
            li = chk.closest('li');
            ul = li.parent();
            parentli = ul.parent();

            if($(parentli).prop("tagName")=="LI"){
                txtbox = parentli.find('input');
                alert($(txtbox).is(':checked'));
                if($(txtbox).is(':checked')==false){
                     hid[counter] = chk.val();
                     counter++;

               }
            }else{
                hid[counter] = chk.val();
            }
     }
  });

});


这是html:

<ul>
  <li><label><input type="checkbox" value="Administration" />Administration</label>
    <ul>
        <li><label><input type="checkbox" value="President" />President</label>
            <ul>
                <li><label><input type="checkbox" value="manager 1" />Manager 1</label>
                    <ul>
                        <li><label><input type="checkbox" value="asst manager 1"/>Assistant Manager 1</label></li>
                        <li><label><input type="checkbox" value="asst manager 2"/>Assistant Manager 2</label></li>
                        <li><label><input type="checkbox" value="asst manager 3"/>Assistant Manager 3</label></li>
                    </ul>
                </li>
                <li><label><input type="checkbox" value="manager 2"/>Manager 2</label></li>
                <li><label><input type="checkbox" value="manager 3"/>Manager 3</label></li>
            </ul>
        </li>
        <li><label><input type="checkbox" value="Vice President"/>Vice President</label>
            <ul>
                <li><label><input type="checkbox" value="Manager 4"/>Manager 4</label></li>
                <li><label><input type="checkbox" value="Manager 5"/>Manager 5</label></li>
                <li><label><input type="checkbox" value="Manager 6"/>Manager 6</label></li>
            </ul>
      </li>
   </ul>
  </li>
</ul>

<input type="button" id="xxx"  value="click" />


演示:http://jsfiddle.net/Er6Rx/1/

最佳答案

采用:

$(txtbox).prop('checked')


代替

$(txtbox).is(':checked')

关于javascript - 如果未选中其父级,则获取父级复选框值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22552703/

10-09 01:23