인프런 커뮤니티 질문&답변

신승아님의 프로필 이미지
신승아

작성한 질문수

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

[그랩마켓] Javascript 적용하기 - 2

에러는 안나는데 그림이 안뜹니다

작성

·

145

0

그랩마켓 자바스크립트 적용하기 -2 편에서 다 되는데 농구공 그림이 안떠요

<html>

<head>
    <title>그랩마켓</title>
    <link href="index.css" type="text/css" rel="stylesheet" />

</head>

<body>
    <div id="header">
        <div id="header-area">
            <img src="images/icons/logo.png" />
        </div>
    </div>
    <div id="body">
        <div id="banner">
            <img src="images/banners/banner1.png">
        </div>
        <h1>판매되는 상품들</h1>
        <div id="product-list">
            
    </div>
    </div>
    <div id="footer"></div>
</body>
<script>
    var product = [{
        name : '농구공',
        price : 10000,
        seller : '조던',
        imagUrl : '/images/products/basketball1.jpeg'
    },{
        name : '축구공',
        price : 50000,
        seller : '메시',
        ImageUrl : '/images/prodocts/soccerball1.jpg'
    },{
        name : '키보드',
        price : 10000,
        seller :'그랩',
        ImageUrl : '/images/prodocts/keyboard.jpg'
    }];
    document.querySelector("#product-list").innerHTML =
     '<div class="product-card>'+
    "<div>" +
    '<img class="product-img" src="images/products/basketball1.jpeg" />' +
    "</div>" +
    '<div class="product-contents">' +
    '<span class="product-name">농구공 1호</span>' +
    '<span class="product-price">50000원</span>' +
    '<div class="product-seller">' +
    '<img class="product-avatar" src="images/icons/avatar.png" />'+
    "<span>그랩</span>" +
    "</div>" +
    "</div>" +
    "</div>"
</script>
</html>

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

신승아님, 제공해 주신 코드를 보니 몇 가지 오타로 인해 이미지가 표시되지 않는 것 같습니다.

  1. imgUrl이라고 적혀 있는 변수명이 ImageUrl로 사용되어야 하는 부분이 있습니다. 변수명은 대소문자를 구분하기 때문에 일관성 있게 imageUrl로 통일해야 합니다.

  2. document.querySelector("#product-list").innerHTML로 상품 리스트를 추가하는 코드 내의 HTML 문자열에서 따옴표를 닫는 부분이 잘못되었습니다. <div class="product-card"> 뒤에 따옴표가 "가 아닌 \로 되어 있습니다.

  3. 타이핑한 ImageUrl 속성값에서 경로명이 '/images/prodocts/...으로 잘못된 폴더명을 사용하고 있습니다. 이는 ‘/images/products/…‘로 수정해야 합니다.

수정된 코드는 다음과 같습니다:

<script>
    var product = [{
        name : '농구공',
        price : 10000,
        seller : '조던',
        imageUrl : '/images/products/basketball1.jpeg'
    },{
        name : '축구공',
        price : 50000,
        seller : '메시',
        imageUrl : '/images/products/soccerball1.jpg'
    },{
        name : '키보드',
        price : 10000,
        seller :'그랩',
        imageUrl : '/images/products/keyboard.jpg'
    }];
    document.querySelector("#product-list").innerHTML =
    '<div class="product-card">'+
    "<div>" +
    '<img class="product-img" src="'+product[0].imageUrl+'" />' +
    "</div>" +
    '<div class="product-contents">' +
    '<span class="product-name">'+product[0].name+'</span>' +
    '<span class="product-price">'+product[0].price+'원</span>' +
    '<div class="product-seller">' +
    '<img class="product-avatar" src="images/icons/avatar.png" />'+
    "<span>"+product[0].seller+"</span>" +
    "</div>" +
    "</div>" +
    "</div>"
</script>

위와 같이 코드를 수정하고 나면 농구공 이미지가 정상적으로 표시될 것으로 기대할 수 있습니다.

신승아님의 프로필 이미지
신승아
질문자

<html>

<head>
    <title>그랩마켓</title>
    <link href="index.css" type="text/css" rel="stylesheet" />

</head>

<body>
    <div id="header">
        <div id="header-area">
            <img src="images/icons/logo.png" />
        </div>
    </div>
    <div id="body">
        <div id="banner">
            <img src="images/banners/banner1.png">
        </div>
        <h1>판매되는 상품들</h1>
        <div id="product-list">   
    </div>
    </div>
    <div id="footer"></div>
</body>
<script>
    var products = [{
        name : '농구공',
        price : 10000,
        seller : '조던',
        imagUrl : "images/products/basketball1.jpeg"
    },{
        name : '축구공',
        price : 50000,
        seller : '메시',
        ImageUrl : "images/prodocts/soccerball1.jpg"
    },{
        name : '키보드',
        price : 10000,
        seller :'그랩',
        ImageUrl : "images/prodocts/keyboard.jpg"
    }];
    let prodoctsHtml = "";
    for (var i = 0; i <products.length; i++){
    let prodoct = products[i]
    prodoctsHtml = 
    prodoctsHtml +  
    '<div class="product-card">' +
    "<div>" +
    '<img class="product-img" src="' +
    prodoct.imagUrl+
    '" />' +
    "</div>" +
    '<div class="product-contents">' +
    '<span class="product-name">' +
    product.name +
    "</span>" +
    '<span class="product-price">'+
    product.price +
    "원"+
    "</span>" +
    '<div class="product-seller">' +
    '<img class="product-avatar" src="images/icons/avatar.png" />'+
    "<span>" +
    prodoct.seller +
    "</span>" +
    "</div>" +
    "</div>" +
    "</div>";
    }

    document.querySelector("#product-list").innerHTML = prodoctsHtml;

여기서도 맞춤법이 틀린걸까요 ㅠㅠ

신승아님의 프로필 이미지
신승아

작성한 질문수

질문하기