jquery error uncaught typeerror:无法读取未定义的属性'length'

时间:2016-08-27 15:49:28

标签: javascript jquery

我正在阅读JavaScript教程。我必须显示一个数组的长度,但在调用时我得到了上述错误。

var bio = {
"portfolio": [
    {
        "name": "Sambit Mishra",
        "role": "Frontend Web Developer",
        "contacts": {
            "mobile": "+91-8888888888",
            "email": "xyz@gmail.com"
        },
        "skills": ["Awesome ", "Frontend Design ", "Javascript ", "Python "],
        "message": "Have a great day ahead."
    }
]}
if(bio["skills"].length > 0) {
$("#header").append(HTMLskillsStart);

var formattedSkill = HTMLskills.replace("%data%", bio.skills[0]);
$("#skills").append(formattedSkill);
formattedSkill = HTMLskills.replace("%data%", bio.skills[1]);
$("#skills").append(formattedSkill);
formattedSkill = HTMLskills.replace("%data%", bio.skills[2]);
$("#skills").append(formattedSkill);
formattedSkill = HTMLskills.replace("%data%", bio.skills[3]);
$("#skills").append(formattedSkill);}

我在这里推断的是bio [“技能”]的长度属性显示为未定义。帮助将得到承认。谢谢..

3 个答案:

答案 0 :(得分:1)

你的路径错了。第一代对象中没有属性skills。相反,路径似乎是:

bio.portfolio[0].skills

或者,如果您愿意

bio['portfolio'][0]['skills']

答案 1 :(得分:0)

使用此bio.portfolio[0]['skills'].lengthbio.portfolio[0].skills.length rathen然后bio["skills"]

答案 2 :(得分:0)

错误消息表示bio["skillls"]不存在。我想bio.portfolio[0].skills.length就是你想要的。 portfolio是对象bio的属性,其数组为值。此数组的第一个元素是具有属性skills的对象。此属性的值是一个数组,因此具有长度。