亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么不能往json里push數據?

下面代碼不管用,調式時控制臺顯示SyntaxError: unterminated regular expression literal,也看不懂,找了一上午也沒找到原因

<!DOCTYPE?html>
<html>
????<head>
????????<title>json?push還不管用</title>
????????<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/>
????????<script?src="http://libs.baidu.com/jquery/1.9.0/jquery.js"?type="text/javascript"></script>
????????<style>
????????????ul?{margin:?0;?padding:?0;}
????????????li?{?list-style:?none;}
????????????.txt?{?padding-left:?4px;?outline:?none;}
????????????#ul{
????????????????color:red;
????????????????border:solid?1px?blue;
????????????}
????????</style>
????</head>
????<body>
????????<form?action="#"?method="get">
????????????<label>
????????????????<input?id="txt1"?class="txt"?type="text"?name="UserName"?placeholder="請輸入姓名">
????????????????<input?id="txt2"?class="txt"?type="text"?name="Userscore"?placeholder="請輸入分數">
????????????</label>
????????????<input?id="bsave"?type="button"?value="保存數據">
????????????<input?id="bshow"?type="button"?value="顯示數據">
????????</form>
????????<ul?id="myul">
????????<li?id='xs'>下面是學生分數信息</li>
????????</ul>
????????<script>
????????????var?$name?=?$('#txt1');
????????????var?$score?=$('#txt2')?;
????????????var?$txt?=?$('.txt');?
????????????//定義一個json對象,用于保存學生的相關資料
????????????var?myjson?=?"[{'name':'a','score':1},{'name':'b','score':2}]";????????????????????????
????????????//push內容
????????????var?myarr?=?{
????????????????"name"?:?$name.val(),
????????????????"score"?:?$score.val()
????????????};????????????
????????????$('#bsave').on('click',?function?()?{
????????????????myjson.push(myarr);
????????????????$txt.val('');
????????????});
????????????$('#bshow').on('click',function?()?{
????????????????//通過$.each()工具函數,獲取數組中各元素的名稱與內容,顯示在頁面中。?
?????????????????$.each(myjson,function?(index,obj)?{
????????????????????$('ul').append('<li>'+'姓名:'+obj.name+'?年齡:'+obj.socre</li>');
????????????});
????????
????????</script>
????</body>
</html>

麻煩大家幫忙看一下,謝了

正在回答

3 回答

首先你用的所有方法都是基于對象上封裝的,push方法是數組特有,即意味這Array(這里必須是數組類型).push才能調用

JSON對象不是數組對象,在瀏覽器中的控制臺可用這種方法驗證(myjson instanceof Array || JSON instanceof Array),不是數組自然就沒有數組的方法push,一般情況JSON數據由后端人員提供,JSON數據都是完整的,所以一般都不修改,修改的話也是后臺直接更新JSON數據或接口,我列出幾種容易混淆的格式吧

//關聯數組其底層也是對象(key值為字符串)

var?myarr?=?{

????????????????"name"?:?$name.val(),

????????????????"score"?:?$score.val()

????????????};?

//對象(key值比關聯數組少了"")

var myObj ={

????????????????name:$name.val(),

????????????????score: $score.val()

}

//對象數組(每個key下面都是對象,該數組的key依然是普通的數字下標)

var myarr = [{name:'xiaoming'},{name:'xiaohong'}];

//JSON字符串對象(比關聯數組多了"")---是字符轉(typeof myjson可以驗證;)

?var?myjson?=?"[{'name':'a','score':1},{'name':'b','score':2}]";

一般都說是關聯數組轉成JSON字符串,JSON.stringify("要轉的關聯數組");

2 回復 有任何疑惑可以回復我~
#1

慕UI3524263 提問者

講得很清楚了,多謝
2017-11-09 回復 有任何疑惑可以回復我~

來學習 留個腳印。

0 回復 有任何疑惑可以回復我~

僅僅知道這些,見諒,如果有錯誤,還請立馬通知我

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么不能往json里push數據?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號