一个Jquery操纵节点的小练习

这个练习是我在学习Jquery时,遇到的一个很经典的例子,在这里记录下来,以免以后忘记。
例子出自廖雪峰老师写的javascript教程:查找和过滤-廖雪峰的官方网站
廖老师的这个教程写的很详细很超前,有需要的推荐去学习一下。

以下是该例的题目及我的答案:


练习

对于下面的表单:
<form id="test-form" action="#0" onsubmit="return false;">
    <p><label>Name: <input name="name"></label></p>
    <p><label>Email: <input name="email"></label></p>
    <p><label>Password: <input name="password" type="password"></label></p>
    <p>Gender: <label><input name="gender" type="radio" value="m" checked> Male</label> <label><input name="gender" type="radio" value="f"> Female</label></p>
    <p><label>City: <select name="city">
        <option value="BJ" selected>Beijing</option>
        <option value="SH">Shanghai</option>
        <option value="CD">Chengdu</option>
        <option value="XM">Xiamen</option>
    </select></label></p>
    <p><button type="submit">Submit</button></p>
</form>
在以下表单中输入值后,用jQuery获取表单的JSON字符串,key和value分别对应每个输入的name和相应的value,例如:{"name":"Michael","email":...}

这里写图片描述

我的JS代码:

<script>
    'use strict';
    var json = null;
    var obj = {}; //声明一个空对象
    var input = $('#test-form input'); //获取所有的input节点
    var select = $('select'); //获取select节点
    input.map(function(){  //用map()方法将每个input的属性、属性值添加到obj中
        if(this.type === 'radio'){  
            if(this.checked){ //只将选中的radio节点添加进obj中
                obj[this.name] = this.value;
            }
        }else{
            obj[this.name] = this.value;
        }
    });
    select.find('option').map(function(){ //原理同上
        if(this.selected){
            obj[select.name] = this.value;
        }
    });
    json = JSON.stringify(obj); //将obj转为JSON的string格式

    // 显示结果:
    if (typeof(json) === 'string') {
        alert(json);
    }
    else {
        alert('json变量不是string!');
    }
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值