this is what ive got, the item pushes to the array when typed in to the input boxes and the button is clicked to submit, i just cant seem to get it displayed on the html not sure where ive went wrong
$( document ).ready ( readyNow ); let garage = []; function readyNow() { console.log( 'JQ' ); $( '#addCarButton' ).on( 'click', addCar ) } //end readyNow function addCar() { console.log('in addCar'); //get unser inputs //create new object let newCars = { year: $( '#yearInput' ).val(), make: $( '#makeInput' ).val(), model: $( '#modelInput' ).val() } //push the new car into the array garage.push( newCars ); //empty inputs $( '#yearInput' ).val( '' ); $( '#makeInput' ).val( '' ); $( '#modelInput' ).val( '' ); } console.log(garage); function displayGarage(){ console.log('in displayGarage'); $('#garageOut ').append ( '<li> Year: ' + newCars.year + 'Make: ' + newCars.make + 'Model: ' + newCars.model +'</li>'); }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="scripts/jQuery.js" charset="utf-8"></script> <script src="scripts/client.js" charset="utf-8"></script> <link rel="stylesheet" href="styles/style.css"> <title>Week 6 Tier 1 Assignment</title> </head> <body> <h1><img src="images/logo.png" alt="noah's car garage"></h1> <h2>Please Enter your Year, Make, and Model: <span id="garageList"></span></h2> <input placeholder="Year" id="yearInput" /> <input placeholder="Make" id="makeInput" /> <input placeholder="Model" id="modelInput" /> <button id= "addCarButton">Add Car</button> <h3>Garage:</h3> <div id ="garageOut"></div> </div> </body> </html>
please help, i can see that the array is outputted in the console when typed into the buttons but nothing shows up on my html, am i not sourcing it somehow? i have the id set to garageOut on a div on the html
Advertisement
Answer
- You are not calling
displayGarage
after adding a new car. - Simply calling it is not enough, you need to pass a new car to it
$(document).ready(readyNow); let garage = []; function readyNow() { console.log('JQ'); $('#addCarButton').on('click', addCar) } //end readyNow function addCar() { console.log('in addCar'); //get unser inputs //create new object let newCar = { year: $('#yearInput').val(), make: $('#makeInput').val(), model: $('#modelInput').val() } //push the new car into the array garage.push(newCar); //empty inputs $('#yearInput').val(''); $('#makeInput').val(''); $('#modelInput').val(''); displayGarage(newCar); // NEW } console.log(garage); function displayGarage(newCar) { // NEW console.log('in displayGarage'); $('#garageOut ').append('<li> Year: ' + newCar.year + 'Make: ' + newCar.make + 'Model: ' + newCar.model + '</li>'); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="scripts/jQuery.js" charset="utf-8"></script> <script src="scripts/client.js" charset="utf-8"></script> <link rel="stylesheet" href="styles/style.css"> <title>Week 6 Tier 1 Assignment</title> </head> <body> <h1><img src="images/logo.png" alt="noah's car garage"></h1> <h2>Please Enter your Year, Make, and Model: <span id="garageList"></span></h2> <input placeholder="Year" id="yearInput" /> <input placeholder="Make" id="makeInput" /> <input placeholder="Model" id="modelInput" /> <button id="addCarButton">Add Car</button> <h3>Garage:</h3> <div id="garageOut"></div> </div> </body> </html>