广东蜡笔小新 2022-07-25 12:27 采纳率: 66.7%
浏览 55
已结题

如何通过点击按钮添加json数据到js文件

如何通过点击按钮添加json数据到js文件
下面是data.js文件
var user_data = {

files: [
{
name: 'Root',
id: 0,
type: 'root',
type:'folder',
time: '2017-01-01',
children: [
{
name: 'Front Frame',
id: 1,
pId: 0,
type:'folder',
time: '2017-10-02',
children: [
{
name: 'React',
id: 4,
pId: 1,
type:'folder',
time: '2017-01-03',
children: []
},
{
name: 'Vue',
id: 5,
pId: 1,
type:'folder',
time: '2017-01-04',
children: [
{
name: 'vue-cli',
id: 6,
pId: 5,
type:'folder',
time: '2017-01-04',
children: []
}
]
}
]
},
{
name: 'HTML5',
id: 2,
pId: 0,
type:'folder',
time: '2017-01-01',
children: []
},
{
name: 'CSS3',
id: 3,
pId: 0,
type:'folder',
time: '2017-05-01',
children:[]
},

  ]
}    

]
};

如何通过按钮把下面这组数据添加进data.js
var newFolder = {
                id: currentDataId,
                name: '新建文件夹',
                type: 'folder',
                time: '2018-01-01',
                children: []
            } 
  • 写回答

5条回答 默认 最新

  • sannianerban12138 2022-07-25 15:25
    关注

    首先我不确定你的项目环境是否支持import的写法,如果项目环境配置了,你可以将data.js定义成一个类,然后将数据暴露出去,在你需要的js文件,或者页面当中引入data.js,我这里就假设你没有import的环境配置,那么你需要这么写
    首先将你的data.js改成一个es6版本的class

    export default class myData{
        static user_data=[];//这里写你的数据
    }
    

    然后将这个data.js文件放到你的项目目录当中,然后在需要的页面这样写,比如在index.html

    <!--页面内容我就不写了-->
    <script type="module">
      import myData from "./data.js" //这里路径根据你data.js文件和当前页面的路径自行修改
    //这里我用的是Jquery绑定点击事件的方式,用其他的也可以
    $('.onebutton button').click(()=>{
    var newFolder = {
                    id: currentDataId,
                    name: '新建文件夹',
                    type: 'folder',
                    time: '2018-01-01',
                    children: []
                } 
    myData.user_data.push(newFolder)
    })
    <</script>>
    

    需要注意的是,你在页面上使用user_data时,也需要先引入才能使用,就像我修改数据的方式一样,用的时候写myData.user_data即可,这个模式可以实现你在页面上点击按钮以后,添加想要的数据到对应的数据里面,但是添加的数据在页面刷新后依旧会消失,只有你初始定义的数据还在,如果需要保留,你就需要在用户退出之前,将更新的数据提交到后台保存,然后用户再次进入时初始化数据

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 已采纳回答 7月25日
  • 创建了问题 7月25日

悬赏问题

  • ¥15 灰狼算法和蚁群算法如何结合
  • ¥15 这是一个利用ESP32自带按键和LED控制的录像代码,编译过程出现问题,请解决并且指出错误,指导如何处理 ,协助完成代码并上传代码
  • ¥20 stm32f103,hal库 hal_usart_receive函数接收不到数据。
  • ¥20 求结果和代码,sas利用OPTEX程序和D-efficiency生成正交集
  • ¥50 求fpga交通信号灯设计Verilog代码
  • ¥50 adb连接不到手机是怎么回事?
  • ¥20 抓取数据时发生错误: get_mooncake_data() missing 1 required positional argument: 'driver'的问题,怎么改出正确的爬虫代码?
  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头