4

我有一个treelist包含多个级别的内容,checkboxes并且我试图让父项checkbox显示为单击'checked'任何子项时checkboxes。出于某种原因,这不起作用,它正在杀死我。

JAVASCRIPT

$(function() {
        $("input.boundChild[type=checkbox]").click(function() {              
            $(this).closest("input.boundParent").prop("checked", "checked");
        });
 });

HTML

<ul>
   <li class="collapsed expanded">
       <input id="0" class="boundParent" type="checkbox" >
        Australia
             <ul style="display: block;">
               <li>
                  <input id="0/" class="boundChild" type="checkbox" checked="">
                  <input type="hidden" value="Intel Australia PTY Ltd.">
               </li>
             </ul>
   </li>
</ul>
4

2 回答 2

9

input元素不能有子元素,在您的标记input.boundParent中不是input.boundChild. ul它是元素的兄弟。你可以使用prev方法。

$(function() {
    $("input.boundChild[type=checkbox]").click(function() {              
        $(this).closest('ul').prev().prop("checked", this.checked);
        // $('input.boundParent').prop("checked", this.checked);
    });
});

http://jsfiddle.net/dhVvN/

于 2012-10-17T12:44:56.667 回答
0

尝试:

$(this).parent("li.expanded").find("input.boundParent").attr("checked","checked");

expanded前提是您选择孩子时,父母 li 始终拥有班级。

于 2012-10-17T12:44:18.497 回答