''Silly story generator”assessment

I’m working through the assessment.But something is wrong with my code.Please help me to find out why I got the error of Uncaught TypeError: Cannot read property ‘addEventListener’ of null.

I copy my code below.

const customName = document.getElementById(‘customname’);
const randomize = document.querySelector(’.randomize’);
const story = document.querySelector(’.story’);

function randomValueFromArray(array){
const random = Math.floor(Math.random()*array.length);
return array[random];
}
let storyText = ‘It was 94 fahrenheit outside, so :insertx: went for a walk. When they got to :inserty:, they stared in horror for a few moments, then :insertz:. Bob saw the whole thing, but was not surprised — :insertx: weighs 300 pounds, and it was a hot day.’

let insertX = [‘Willy the Goblin’,
‘Big Daddy’,
‘Father Christmas’]

let insertY = [‘the soup kitchen’,
‘Disneyland’,
‘the White House’]

let insertZ = [‘spontaneously combusted’,
‘melted into a puddle on the sidewalk’,
‘turned into a slug and crawled away’]

randomize.addEventListener(‘click’, result);

function result() {

let newStory = storyText;
let xItem = randomValueFromArray(insertX);
let yItem = randomValueFromArray(insertY);
let zItem = randomValueFromArray(insertZ);

newStory = newStory .replace(’:insertx:’,xItem);
newStory = newStory .replace(’:inserty:’,yItem);
newStory = newStory .replace(’:insertz:’,zItem);

if(customName.value !== ‘’) {

 let name = customName.value;
newStory = newStory.replace('Bob',name);

}

if(document.getElementById(“uk”).checked) {
let weight = Math.round(3000.0714286) + ‘stone’;
let temperature = Math.round((94-32)
5 / 9) + ‘centigrade’;sss
newStory = newStory.replace(‘94 fahrenheit’,temperature);
newStory = newStory.replace(‘300 pounds’,weight)

}

story.textContent = newStory;
story.style.visibility = ‘visible’;
}

Hi @Yingzhuo_Li! Thanks for sending in your code!

This seemed mostly fine to me. The only problems I found were:

  1. I added another copy of this line:
newStory = newStory .replace(':insertx:',xItem);

Below the first one, so that both instances of :insertx: are replaced with xItem. Each replace() call only deals with the first instance of the substring it finds, unless you use a global regular expression instead of a string matcher. So you could replace the two lines with this single one:

newStory = newStory .replace(/:insertx:/g,xItem);
  1. This line has syntax problems:
let temperature = Math.round((94-32) 5 / 9) + ‘centigrade’;sss

I fixed it like this:

let temperature = Math.round((94-32) * 5 / 9) + ' centigrade ';