為什么不能往json里push數(shù)據(jù)?
下面代碼不管用,調(diào)式時控制臺顯示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="請輸入分?jǐn)?shù)"> ????????????</label> ????????????<input?id="bsave"?type="button"?value="保存數(shù)據(jù)"> ????????????<input?id="bshow"?type="button"?value="顯示數(shù)據(jù)"> ????????</form> ????????<ul?id="myul"> ????????<li?id='xs'>下面是學(xué)生分?jǐn)?shù)信息</li> ????????</ul> ????????<script> ????????????var?$name?=?$('#txt1'); ????????????var?$score?=$('#txt2')?; ????????????var?$txt?=?$('.txt');? ????????????//定義一個json對象,用于保存學(xué)生的相關(guān)資料 ????????????var?myjson?=?"[{'name':'a','score':1},{'name':'b','score':2}]";???????????????????????? ????????????//push內(nèi)容 ????????????var?myarr?=?{ ????????????????"name"?:?$name.val(), ????????????????"score"?:?$score.val() ????????????};???????????? ????????????$('#bsave').on('click',?function?()?{ ????????????????myjson.push(myarr); ????????????????$txt.val(''); ????????????}); ????????????$('#bshow').on('click',function?()?{ ????????????????//通過$.each()工具函數(shù),獲取數(shù)組中各元素的名稱與內(nèi)容,顯示在頁面中。? ?????????????????$.each(myjson,function?(index,obj)?{ ????????????????????$('ul').append('<li>'+'姓名:'+obj.name+'?年齡:'+obj.socre</li>'); ????????????}); ???????? ????????</script> ????</body> </html>
麻煩大家?guī)兔匆幌?謝了
2017-11-07
首先你用的所有方法都是基于對象上封裝的,push方法是數(shù)組特有,即意味這Array(這里必須是數(shù)組類型).push才能調(diào)用
JSON對象不是數(shù)組對象,在瀏覽器中的控制臺可用這種方法驗證(myjson instanceof Array || JSON instanceof Array),不是數(shù)組自然就沒有數(shù)組的方法push,一般情況JSON數(shù)據(jù)由后端人員提供,JSON數(shù)據(jù)都是完整的,所以一般都不修改,修改的話也是后臺直接更新JSON數(shù)據(jù)或接口,我列出幾種容易混淆的格式吧
//關(guān)聯(lián)數(shù)組其底層也是對象(key值為字符串)
var?myarr?=?{
????????????????"name"?:?$name.val(),
????????????????"score"?:?$score.val()
????????????};?
//對象(key值比關(guān)聯(lián)數(shù)組少了"")
var myObj ={
????????????????name:$name.val(),
????????????????score: $score.val()
}
//對象數(shù)組(每個key下面都是對象,該數(shù)組的key依然是普通的數(shù)字下標(biāo))
var myarr = [{name:'xiaoming'},{name:'xiaohong'}];
//JSON字符串對象(比關(guān)聯(lián)數(shù)組多了"")---是字符轉(zhuǎn)(typeof myjson可以驗證;)
?var?myjson?=?"[{'name':'a','score':1},{'name':'b','score':2}]";
一般都說是關(guān)聯(lián)數(shù)組轉(zhuǎn)成JSON字符串,JSON.stringify("要轉(zhuǎn)的關(guān)聯(lián)數(shù)組");
2019-09-27
來學(xué)習(xí) 留個腳印。
2017-11-07
僅僅知道這些,見諒,如果有錯誤,還請立馬通知我