了解关于Map()的Jquery片段

understanding a Jquery snippet about Map()

本文关键字:Jquery 片段 Map 了解      更新时间:2023-09-26

我对JS和Jquery很陌生,理解某个函数有点困难,也就是说,我想理解我在Jquery文档中找到的一个非常简单的函数的执行顺序,请看下面(示例也可以在这里找到(::

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

我知道上面的各个函数在做什么,但有人能告诉我上面脚本的执行顺序吗

map()是否将单个id's返回到get()?还是在所有checkbox's上循环,然后一次通过所有id's

函数依次执行,一旦完成,就会将结果交给下一个函数,等等。

它相当于:

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

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

map((是否将单个id返回到get((?还是在所有复选框上循环,然后一次传递所有id

根据.map()、的文件

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

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

订单就是你读到的,我指的是

1-

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

2-get()

3-join()