Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中检索数据会导致空/未定义_Javascript_Jquery_Laravel - Fatal编程技术网

Javascript 从数组中检索数据会导致空/未定义

Javascript 从数组中检索数据会导致空/未定义,javascript,jquery,laravel,Javascript,Jquery,Laravel,嗨,伙计们,我正在尝试控制台从数组记录数据,但URL和图像总是空的或未定义的。我尝试了不同的方法,但没有任何帮助 这是菜单中的拖放功能,我正在将这些项目拖到div#main#u仪表板,需要获取图像的href、innerText和src main_dashboard_items=document.getElementById('main_dashboard').children; 让main_dashboard_items_array=[]; /*让主仪表板项目=[]; for(设i=0;i返回

嗨,伙计们,我正在尝试控制台从数组记录数据,但URL和图像总是空的或未定义的。我尝试了不同的方法,但没有任何帮助

这是菜单中的拖放功能,我正在将这些项目拖到div#main#u仪表板,需要获取图像的href、innerText和src

main_dashboard_items=document.getElementById('main_dashboard').children;
让main_dashboard_items_array=[];
/*让主仪表板项目=[];
for(设i=0;i返回未定义
//console.log(main_dashboard_items[i].getAttribute(“href”)-->返回“null”
let item_arr={'url':主仪表板_items[i].getAttribute(“href”),
“文本”:主仪表板项目[i]。innerText,
“图像”:主仪表板项[i]。子项[0]。子项[0]。currentSrc
};
主仪表板项目数组推送(项目数组);
日志(主仪表板项目数组);

}
您的代码抛出错误“UncaughtTypeError:无法读取null的属性'children',有关详细信息,请参阅开发人员工具>控制台

您应该处理代码中的空值,如null、undefined。只需将代码更改为:

let main_dashboard_items = document.getElementById('main_dashboard').children;
        let main_dashboard_items_array = [];
        /*let main_dashboard_items = [];
        for (let i = 0; i < main_dashboard_items_html.length; i++) {
          // At this point we could also push the elements to an array
          main_dashboard_items.push(main_dashboard_items_html[i]);
        }*/
        for(let i=0; i<main_dashboard_items.length; i++){
            // console.log(main_dashboard_items[i].children[0].currentSrc); --> returned undefined
            // console.log(main_dashboard_items[i].href); --> returned undefined
            //console.log(main_dashboard_items[i].getAttribute("href")) --> returned "null"
            let item_arr = {'url': main_dashboard_items[i].getAttribute("href"),
                'text': main_dashboard_items[i].innerText,
                'image': main_dashboard_items[i].children[0] ? (main_dashboard_items[i].children[0].children && main_dashboard_items[i].children[0].children.length > 0 ? main_dashboard_items[i].children[0].children[0].currentSrc : "") : ""
            };
            main_dashboard_items_array.push(item_arr);
            console.log(main_dashboard_items_array);
        }
main_dashboard_items=document.getElementById('main_dashboard').children;
让main_dashboard_items_array=[];
/*让主仪表板项目=[];
for(设i=0;i返回未定义
//console.log(main_dashboard_items[i].getAttribute(“href”)-->返回“null”
let item_arr={'url':主仪表板_items[i].getAttribute(“href”),
“文本”:主仪表板项目[i]。innerText,
“图像”:主仪表板项[i]。子项[0]?(主仪表板项[i]。子项[0]。子项和主仪表板项[i]。子项[0]。子项[0]。子项。长度>0?主仪表板项[i]。子项[0]。子项[0]。当前SRC:):“”
};
主仪表板项目数组推送(项目数组);
日志(主仪表板项目数组);
}
编辑

现在试试这个:

let main_dashboard_items = document.getElementById('main_dashboard').children;
        let main_dashboard_items_array = [];
        /*let main_dashboard_items = [];
        for (let i = 0; i < main_dashboard_items_html.length; i++) {
          // At this point we could also push the elements to an array
          main_dashboard_items.push(main_dashboard_items_html[i]);
        }*/
        for(let i=0; i<main_dashboard_items.length; i++){
            // console.log(main_dashboard_items[i].children[0].currentSrc); --> returned undefined
            // console.log(main_dashboard_items[i].href); --> returned undefined
            //console.log(main_dashboard_items[i].getAttribute("href")) --> returned "null"
            let item_arr = {'url': main_dashboard_items[i].children[0].getAttribute("href"),
                'text': main_dashboard_items[i].children[0].children[1].innerText,
                'image': main_dashboard_items[i].children[0].children[0].children[0].src,
                'anotherImage' : main_dashboard_items[i].children[0].children[0].children[1].src
            };
            main_dashboard_items_array.push(item_arr);
            console.log(main_dashboard_items_array);
        }
main_dashboard_items=document.getElementById('main_dashboard').children;
让main_dashboard_items_array=[];
/*让主仪表板项目=[];
for(设i=0;i返回未定义
//console.log(main_dashboard_items[i].getAttribute(“href”)-->返回“null”
let item_arr={'url':主仪表板_items[i]。子项[0]。getAttribute(“href”),
“文本”:主面板项[i]。子项[0]。子项[1]。innerText,
“图像”:主仪表板项目[i]。子项[0]。子项[0]。子项[0]。子项[0]。src,
“anotherImage”:主仪表板项目[i]。子项[0]。子项[0]。子项[0]。子项[1]。src
};
主仪表板项目数组推送(项目数组);
日志(主仪表板项目数组);
}

请提供代码而不是屏幕截图,查看此“”已更新。抱歉
。children[0]。children[0
你确定你没有重复吗?嗯,这是一个javascript问题,请发布呈现的html。让我试试看,这可能是有意的,你永远不知道。你在这里运行的内容与实际项目中OP的内容不同。这可能是另一种情况,伙计。它只从拖到m的最新内容中获取url艾努仪表板