请教一下这段Jquery代码中的一个问题:o是一个object对象,那么o[this['name']]是什么意思?
代码实例:
var o = {};
$.each(form.serializeArray(), function (intdex) {
if (o[this['name']]) {
o[this['name']] = o[this['name']] + "," + this['value'];
} else {
o[this['name']] = this['value']
}
});
return o;
第一次在播客上提问,这么快就得到大家的回复,再次表示真诚的感谢!
经过前台页面的调试,彻底弄懂是怎么回事了,下面我完整的解释一下
var o = {};//定义一个空的Js对象
$.each(form.serializeArray(), function (intdex) {//将一个表单元素序列化成Json对象数组,并遍历这个对象数组
if (o[this['name']]) {//如果对象数组中有键为name的元素,给这个元素追加一个值
o[this['name']] = o[this['name']] + "," + this['value'];
} else {
o[this['name']] = this['value']//如果没有值,就这个这个成员添加一个对象,键为name,值为遍历对象中的值
}
});
return o;//最后将这个对象返回
可能语言描述不是很合适,但是这便最关键的知识点就是JS中关于对象的操作,开始就是没有明白这一点,所以看不懂
第一个问题 form.serializeArray() 是什么
http://www.cnblogs.com/lihuiyy/archive/2012/07/17/2596450.html
第二个问题
this['name'] 是什么
this['name'] 是 form.serializeArray() 每一项的name值 也就是输入框(input)的name值
第三个问题
o[this['name']] 是什么
这看不懂
o["输入框的name值"] 这个看得懂吧
谢谢您的答复!
我接触C#时间不久,开始以为这个没什么难的,但是越来越发现,牵涉的东西太多了,尤其是前台的相关知识。还是JavaScript这些基础知识掌握的不好。
再次表示感谢!
var name = this['name'];
o[name];
这样写是不是就懂了?
如果有多项,用逗号拼接值,否则,直接赋值。