var param = {};
$("#obj").find('select,input,textarea').each(function(i,item){
if(item.id){
if($(item).val() ==  null){param[item.id] = "";}
else{$(item).val($(item).val().trim());param[item.id] = $(item).val();}
        }
}
三个问题,请帮忙解释下,不胜感激。
1.var param = {};  定义了什么?
2.item.id  指的是什么?
3.param[item.id]  指的是什么?

解决方案 »

  1.   

    这段代码的作用是 把对应的select input textarea 的value和id 取出来 保存在一个对象里面 结果是一个key:value的形式 id是key value是value如:
    <input id="first" value="hello" />
    <select id="two"><option value="world"></option></select>
    {'first': 'hello', 'two': 'world'}param 就用来存储的对象
    item.id就循环的当前对象的id属性
    param[item.id] 这个就不用说了吧 object[key] = value
      

  2.   

    <div id=obj><input id="first" value="hello" />
    <select id="two"><option value="world"></option></select></div>
    var param = {};
    $("#obj").find('select,input,textarea').each(function(i,item){//i代表的是第几个,item代表的是对象
        if(item.id){ //判断item对象有没有id属性
            if($(item).val() ==  null){param[item.id] = "";} //判断item这个的至是否为空
            else{$(item).val($(item).val().trim());//去掉 item两边的空格并重新复制param[item.id] = $(item).val();}//为param添加元素,first,值位hello
            }
    }
    输出结果和上面一样
      

  3.   


    这种定义对象的语法是”使用对象literals“吧?JSON也这样写?刚接触JavaScript、jQuery,有点陌生,感觉跟java语法相差太多了,有点别扭。谢谢你的指点!