jQuery的eq,get和map,each方法比较
2017-12-20 本文已影响40人
丶灰太狼他叔
1、eq()、get()
两个都是获取元素,而eq获取到的为jq对象,而get()获取的为js对象。
2、map(),each()
map()和each()都是用来遍历jq对象,都会返回一个数组。而each返回的是原来的数组,并不会返回新的数组。而map则会返回进行操作之后的新的数组。
所以,通常用map遍历数组和对象,如:拿到所以输入框的值,变成字符串,并传给后台。
而each通常用来处理拿到的jq对象数组,如给每个添加事件之类的。
map()应用实例
<form method="post" action="">
<fieldset>
<div>
<label for="two">2</label>
<input type="checkbox" value="2" id="two" name="number[]">
</div>
<div>
<label for="four">4</label>
<input type="checkbox" value="4" id="four" name="number[]">
</div>
<div>
<label for="six">6</label>
<input type="checkbox" value="6" id="six" name="number[]">
</div>
<div>
<label for="eight">8</label>
<input type="checkbox" value="8" id="eight" name="number[]">
</div>
</fieldset>
</form>
一、拿到所有input输入框的值并拼接为字符串,用逗号分隔。用于传给后台
var str = $(':checkbox').map(function() {
return $(this).val();
}).get().join(',');
- map返回的是jq对象,.get()方法就是将jq对象转为js对象。然后用js的join()方法拼接为字符串。
二、有时候我们需要以数组的形式拿到这些输入框的值
var arr = $(':checkbox').map(function() {
return $(this).val();
});
去掉get().join(',')这个字符串拼接的方法即可。