美文网首页
jQuery的eq,get和map,each方法比较

jQuery的eq,get和map,each方法比较

作者: 丶灰太狼他叔 | 来源:发表于2017-12-20 18:54 被阅读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(',')这个字符串拼接的方法即可。

    相关文章

      网友评论

          本文标题:jQuery的eq,get和map,each方法比较

          本文链接:https://www.haomeiwen.com/subject/uicnwxtx.html