首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我真的很难把一些信息从表单推到嵌套数组上。

我真的很难把一些信息从表单推到嵌套数组上。
EN

Stack Overflow用户
提问于 2022-10-26 15:03:34
回答 1查看 32关注 0票数 0

我试图将一些信息作为字符串添加到嵌套在对象中的数组中。我试图使用一个非常简单的形式来完成这个任务,使用e.target.elements.inputName.value作为字符串的数据。

但是,当我发送表单来更新地标属性时,我正在控制台中得到未定义的返回。这个未定义的对象正在替换以前在控制台中看到的内容,即我的一个城市对象(我有一个城市数组,其中有一个地标数组)。

我可以将新的城市对象推送到我的城市数组中,没有问题,地标属性设置为空数组,但是当我试图在使用表单和push方法中添加一个地标时,city.landmarks.push(landmarkValue)我的代码中断了,而且我正在变得没有定义。

这是我的index.js代码

代码语言:javascript
运行
复制
let cities = getSavedCities()


const cityDiv = document.querySelector('#cities')

renderCities()



document.querySelector('#add-city').addEventListener('submit', (e) => {
    e.preventDefault()
    cityDiv.innerHTML = ''
    const id = uuidv4()
    cities.push({
        id: id,
        name: e.target.elements.addCity.value,
        country: '',
        landmarks: []
    })
    saveCities()
    renderCities()
    

    e.target.elements.addCity.value = ''
    
})

这是我的edit.js的代码,在这里我试图添加地标

代码语言:javascript
运行
复制
const cityId = location.hash.substring(1)
const cities = getSavedCities()
const city = cities.find((city) => city.id === cityId)
const nameH2 = document.querySelector('#city-name')
const home = document.querySelector('#home')

nameH2.textContent = city.name



document.querySelector('#landmarks').addEventListener('submit', (e) => {
    e.preventDefault()
    const city = cities.find((city) => city.id === cityId)
    const landmark = e.target.elements.landmarks.value
    city.landmarks.push(landmark)
    saveCities()
    e.target.elements.landmarks.value = ''
    
})

提交表单后,我生成的已保存的城市对象将被替换为未定义的城市对象,并得到以下错误消息。

代码语言:javascript
运行
复制
VM201:1 Uncaught SyntaxError: "undefined" is not valid JSON
    at JSON.parse (<anonymous>)
    at getSavedCities (functions.js:5:21)
    at edit.js:2:16
EN

回答 1

Stack Overflow用户

发布于 2022-10-26 15:23:29

如果在getSavedCities()函数中出现此错误,则必须在解析它之前检查该值是否未定义。不能用未定义的值解析JSON。JSON值可以是对象、数组、数字、字符串、true、false或null。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74209978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档