理解有关Map()

时间:2015-05-20 13:23:20

标签: javascript jquery

我是JS和Jquery的新手,我在理解某个功能方面遇到了一点困难,I.E。我想了解我在jquery文档中找到的一个非常简单的函数的执行顺序,如下所示(该示例也可以找到here.)::

HTML ::

<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>

JS ::

$( ":checkbox" )
  .map(function() {
    return this.id;
  })
  .get()
  .join();

结果是::

 "two,four,six,eight".

我理解上面的个人功能正在做什么,但是有人可以告诉我上面脚本的执行顺序.I.E。

map()将个人id's归还get()?或者它是否循环遍历所有checkbox's,然后立即传递所有id's

3 个答案:

答案 0 :(得分:2)

这些函数依次执行,一旦完成,他们将结果交给下一个函数等。

相当于:

var first = $( ":checkbox" ).map(function() {
    return this.id;
  });
var second = first.get();
var third = second.join();

以上只是一个不需要额外变量的简写。

答案 1 :(得分:2)

是map()返回个人ID来获取()吗?或者它是否循环遍历所有复选框,然后立即传递所有ID

根据.map()的文档,

  

通过函数传递当前匹配集中的每个元素,生成一个包含返回值

的新jQuery对象

答案:它循环遍历对象中的所有可用元素,并一次将id附加到数组中。从.map()生成的数组是jquery对象。 .get()将对象转换为值数组。

答案 2 :(得分:0)

订单就像你读的那样,我的意思是

1 -

   $( ":checkbox" )
  .map(function() {
    return this.id;
  })

2- get()

3- join()