javascript中怎么循环提取文本框内容,做成json格式传送到新窗口显示??

提取动态id为10、11、12;20、21、22、30、31、32....的文本框内容,转成json格式,并将json以字符串形式传送到新的页面显示啊???刚学会这个,始... 提取动态id为10、11、12;20、21、22、30、31、32....的文本框内容,转成json格式,并将json以字符串形式传送到新的页面显示啊???刚学会这个,始终编辑不出来,请各位大神帮帮忙,如果有可能请在一些关键点写点注释,以方便小弟学习!!感谢了 展开
 我来答
xiangyuecn
推荐于2017-11-26 · TA获得超过336个赞
知道小有建树答主
回答量:408
采纳率:0%
帮助的人:307万
展开全部

你的id不连续,这个id属性鸡肋了

我想到两种方法

1、

可以取出页面上的所有文本框 历遍dom 或 用jquery $("texterea") 或 querySelectorAll("textarea")

var data={},nodes=querySelectorAll("textarea");//可能所有文本框都是有用的
for(var i=0,l=nodes.length;i<l;i++){
    data[nodes[i].id]=nodes[i].value;//如果有不符合条件的文本框 这里也可以过滤掉
};
var json=JSON.stringify(data);//json出来了 传送到新的页面?不知道你是要什么样的

2、

你程序输出页面的时候就把json顺带也输出了吧,前提页面是你写的

<table>
    <script>var data={}</script>
    <tr>
        <script>data[1]="文本框内容1"</script>
        <td><textarea id="1">文本框内容1</textarea></td><!--你说id是不是鸡肋-->
    </tr>
    <tr>
        <script>data[99]="文本框内容99"</script>
        <td><textarea id="99">文本框内容99</textarea></td>
    </tr>
</table>

<script>
var json=JSON.stringify(data);//json出来了 传送到新的页面?不知道你是要什么样的
</script>
追问
id,我是用javascript动态添加的,id前一位是行号,后一位是列号,至于input用的是text的格式。json传送到新页面想直接在页面显示就行了不需要太麻烦了
追答
动态生成的就更好了,就不用在从显示的表格里取value了
每显示一条 顺带就把数据保存到对象里面
data["行列"]="文本框内容";搞定

按你的显示,alert(json)一下也不错哈,控制台输出也很方便的 console.log(json);
百度网友9ba62ef
2013-09-08 · TA获得超过282个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:64.5万
展开全部
首先,javascript的变量名不能数字开头……

我的思路是,先拼成json格式的字符串。再把字符串转成json对象(好像没办法直接创建json,要先字符串,然后再json)。然后你要用json对象做什么都行。

有个两个术语,我初略的解释就是:
对象变成字符串叫做序列化
字符串变成对象叫做反序列化

了解以上两个术语你就会做了
追问
10、11、12;20、21、22、30、31、32....表格文本框的id,我想用循环来获取这些文本框的值,然后转换成json字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvyingtang
2013-09-09 · TA获得超过645个赞
知道小有建树答主
回答量:675
采纳率:100%
帮助的人:707万
展开全部
网页中用于输入数据的控件有:
textarea,select,input
而input再以type属性区分成:hidden,text,radio,checkbox,button,reset,submit

以上是基础知识,如果你要取的范围内什么类型都有的话那是要多加一些判断的,如果只是一个类型的话那就好办多了,比如,如果都是文本框的话,那直接getElementsByTagName('input')得到对象集合,for循环一下就好了,总之啊,写js是应该要考虑和dom元素的组合的,要如何才方便js取值这是最重要的了

我写有一个提取根据表单获取表单里面所有的输入控件的值的函数,基本思路就是分别用
textarea,select,input三种类型来进行过滤:
getElementsByTagName('input')
getElementsByTagName('textarea')
getElementsByTagName('select')

思路很重要,你还是自己组织好思路吧
追问
是text的,我的思想是用两个for循环提取所有input的内容,然后组成json格式输入一个数组里面,然后在转换成json格式的!
追答
json就是一个格式化的字符串,for一个就行了吧:

var myInput=document.getElementsByTagName('input');
var arr=[];
for(var i=0;i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bobsteven7
2013-09-08 · 超过11用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:21.5万
展开全部
有点没有明白你的意思, 能请问下你要达到的是什么要求吗?
追问
循环获取表格每个单元格内容,单元格内的输入文本框id为10、11、12;20、21、22、30、31、32....,而且表格的行会这样动态增加下去,所以我想用动态获取输入框的值,组成json格式,
追答
加载jquery.js
var inputs = $("table input");
var result = [];
for (var i = 0; i < inputs.length; i++)

result[i] = $(inputs[i]).val();

至于 至于组成json 格式的话
你可以使用jquery的插件

https://code.google.com/p/jquery-json/
var thing = { plugin: 'jquery-json', version: 2.4 };
var encoded = $.toJSON( thing );
// '{"plugin":"jquery-json","version":2.4}'
var name = $.evalJSON( encoded ).plugin;
// "jquery-json"
var version = $.evalJSON(encoded).version;
// 2.4

或者是使用json.js
JSON.stringify(result);

或者直接 手动做成json 格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式