代码之家  ›  专栏  ›  技术社区  ›  userx

未捕获类型错误:children[i]。子项不是函数[重复]

  •  3
  • userx  · 技术社区  · 8 年前

    每个li元素都有三个复选框,分别是object\u ck\u bx、write\u ck\u bx、view\u ck\u bx,我需要获取该复选框的值,但我得到“children不是函数”,为什么代码可以访问li标记名,但不能访问li children?

     function getTreeData() {
            // Get All Li elements thats contains the checkboxes form the type object,read,write
            var children = $('#my_dynamic_list').children().find('li[name=children-li]');
            var extracted_data = [];
            for (i = 0; i < children.length ; i++) {
                alert(children[i].tagName); //this gives li
    
                if (children[i].children().find('input[name=object_ck_bx]').checked == true) { // This Line gives Uncaught TypeError: children[i].children is not a function
                    var profile_code = children[i].children().find('input[name=object_ck_bx]').id;
                    var view = children[i].children().find('input[name=view_ck_bx]').checked;
                    var write = children[i].children().find('input[name=write_ck_bx]').checked;
                    alert('profile_code' + profile_code);
                    var item = [];
                    item = { Id: profile_code, read: view, write: write };
                    extracted_data.push(item);
                }
    
            }
          //  alert(extracted_data);
            return extracted_data;
        }
    

    Html代码: enter image description here

    浏览器中的li属性如下所示 The li properties in the browser looks like

    1 回复  |  直到 8 年前
        1
  •  4
  •   JJWesterkamp    8 年前

    当你打电话的时候 .children() 第一次,你得到了一个简单的数组 HTMLElement 物体。方法 .儿童() 您试图调用的是jQuery集合的一个方法。因此,为了从平原生成jQuery对象 HTMLElement公司 你从 children[i] ,将其包装到jQuery构造函数中,如下所示:

    $(children[i]).children() // ...