uTools-Manuals/docs/jQuery/jQuery.each.html
2019-04-21 11:50:48 +08:00

188 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<article class="" id="post-">
<header class="entry-header">
<h1 class="entry-title">jQuery.each()</h1>
<div class="entry-meta">
所属分类:<span class="category"><a href="/category/utilities/">工具类</a></span>
<span class="pull-right">英文文档:<a href="https://api.jquery123.com/jQuery.each/" target="_blank">jQuery.each()</a></span>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<!-- .entry-header -->
<div class="entry-content">
<article class="entry method" id="jQuery-each1"><h2 class="section-title">
<span class="name">jQuery.each( collection, callback(indexInArray, valueOfElement) )</span><span class="returns">返回: <a href="/Types/#Object">Object</a></span>
</h2>
<div class="entry-wrapper">
<p class="desc"><strong>描述: </strong>
一个通用的迭代函数它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性如一个函数的参数对象来迭代数字索引从0到length - 1。其他对象通过其属性名进行迭代。</p>
<ul class="signatures"><li class="signature" id="jQuery-each-collection-callbackindexInArray--valueOfElement">
<h4 class="name">
<span class="version-details">添加的版本: <a href="/category/version/1.0/">1.0</a></span>jQuery.each( collection, callback(indexInArray, valueOfElement) )</h4>
<ul>
<li>
<div><strong>collection</strong></div>
<div>类型: <a href="/Types/#Object">Object</a>
</div>
<div>遍历的对象或数组。</div>
</li>
<li>
<div><strong>callback(indexInArray, valueOfElement)</strong></div>
<div>类型: <a href="/Types/#Function">Function</a>()</div>
<div>该函数会在每次迭代时被调用。</div>
</li>
</ul>
</li></ul>
<div class="longdesc" id="entry-longdesc">
<p><code>$.each()</code>函数和<a href="/each"> $(selector).each()</a>是不一样的那个是专门用来遍历一个jQuery对象。<code>$.each()</code>函数可用于迭代任何集合,无论是“名/值”对象JavaScript对象或数组。在迭代数组的情况下回调函数每次传递一个数组索引和相应的数组值作为参数。该值也可以通过访问<code>this</code>关键字得到但是JavaScript将始终将<code>this</code>值作为一个<code>Object</code> ,即使它是一个简单的字符串或数字值。)该方法返回其第一个参数,这是迭代的对象。</p>
<div class="syntaxhighlighter javascript nogutter">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code>$.each([<span class="number">52</span>, <span class="number">97</span>], <span class="keyword">function</span>(index, value) {</code></div></div><div class="container"><div class="line"><code> alert(index + <span class="string">': '</span> + value);</code></div></div><div class="container"><div class="line"><code>});</code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>这将产生两个信息:</p>
<p>
<span class="output">0: 52</span>
<br/>
<span class="output">1: 97</span>
</p>
<p>如果对象是作为集合使用,回调函数每次传递一个键值对的:</p>
<div class="syntaxhighlighter javascript nogutter">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
<div class="line n4">4</div>
<div class="line n5">5</div>
<div class="line n6">6</div>
<div class="line n7">7</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code><span class="keyword">var</span> obj = {</code></div></div><div class="container"><div class="line"><code> <span class="string">"flammable"</span>: <span class="string">"inflammable"</span>,</code></div></div><div class="container"><div class="line"><code> <span class="string">"duh"</span>: <span class="string">"no duh"</span></code></div></div><div class="container"><div class="line"><code>};</code></div></div><div class="container"><div class="line"><code>$.each( obj, <span class="keyword">function</span>( key, value ) {</code></div></div><div class="container"><div class="line"><code> alert( key + <span class="string">": "</span> + value );</code></div></div><div class="container"><div class="line"><code>});</code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>再次,这将产生两个信息:</p>
<p>
<span class="output">flammable: inflammable</span>
<br/>
<span class="output">duh: no duh</span>
</p>
<p>我们可以在<code>$.each()</code>返回<code>false</code>来终止迭代。返回<em>非false</em>相当于一个循环中的<code>continue</code>语句,这意味着,它会立即跳出当前的迭代,转到下一个迭代。</p>
</div>
<section class="entry-examples" id="entry-examples"><header><h2 class="underline">例子:</h2></header><div class="entry-example" id="example-0">
<h4>Example: <span class="desc">对数组进行迭代,迭代过程中同时显示关键字及数值</span>
</h4>
<div class="syntaxhighlighter xml ">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
<div class="line n4">4</div>
<div class="line n5">5</div>
<div class="line n6">6</div>
<div class="line n7">7</div>
<div class="line n8">8</div>
<div class="line n9">9</div>
<div class="line n10">10</div>
<div class="line n11">11</div>
<div class="line n12">12</div>
<div class="line n13">13</div>
<div class="line n14">14</div>
<div class="line n15">15</div>
<div class="line n16">16</div>
<div class="line n17">17</div>
<div class="line n18">18</div>
<div class="line n19">19</div>
<div class="line n20">20</div>
<div class="line n21">21</div>
<div class="line n22">22</div>
<div class="line n23">23</div>
<div class="line n24">24</div>
<div class="line n25">25</div>
<div class="line n26">26</div>
<div class="line n27">27</div>
<div class="line n28">28</div>
<div class="line n29">29</div>
<div class="line n30">30</div>
<div class="line n31">31</div>
<div class="line n32">32</div>
<div class="line n33">33</div>
<div class="line n34">34</div>
<div class="line n35">35</div>
<div class="line n36">36</div>
<div class="line n37">37</div>
<div class="line n38">38</div>
<div class="line n39">39</div>
<div class="line n40">40</div>
<div class="line n41">41</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code><span class="doctype">&lt;!doctype html&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">html</span> <span class="attribute">lang</span>=<span class="value">"en"</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">head</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> <span class="tag">&lt;<span class="title">meta</span> <span class="attribute">charset</span>=<span class="value">"utf-8"</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> <span class="tag">&lt;<span class="title">title</span>&gt;</span>jQuery.each demo<span class="tag">&lt;/<span class="title">title</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> <span class="tag">&lt;<span class="title">style</span>&gt;</span><span class="css"></span></code></div></div><div class="container"><div class="line"><code> <span class="tag">div</span> <span class="rules">{</span></code></div></div><div class="container"><div class="line"><code> <span class="rule"><span class="attribute">color</span>:<span class="value"> blue;</span></span></code></div></div><div class="container"><div class="line"><code> <span class="rule">}</span></code></div></div><div class="container"><div class="line"><code> <span class="tag">div</span><span class="id">#five</span> <span class="rules">{</span></code></div></div><div class="container"><div class="line"><code> <span class="rule"><span class="attribute">color</span>:<span class="value"> red;</span></span></code></div></div><div class="container"><div class="line"><code> <span class="rule">}</span></code></div></div><div class="container"><div class="line"><code> <span class="tag">&lt;/<span class="title">style</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> <span class="tag">&lt;<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"https://code.jquery.com/jquery-1.9.1.js"</span>&gt;</span><span class="javascript"></span><span class="tag">&lt;/<span class="title">script</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;/<span class="title">head</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">body</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"one"</span>&gt;</span><span class="tag">&lt;/<span class="title">div</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"two"</span>&gt;</span><span class="tag">&lt;/<span class="title">div</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"three"</span>&gt;</span><span class="tag">&lt;/<span class="title">div</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"four"</span>&gt;</span><span class="tag">&lt;/<span class="title">div</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"five"</span>&gt;</span><span class="tag">&lt;/<span class="title">div</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;<span class="title">script</span>&gt;</span><span class="javascript"></span></code></div></div><div class="container"><div class="line"><code><span class="keyword">var</span> arr = [ <span class="string">"one"</span>, <span class="string">"two"</span>, <span class="string">"three"</span>, <span class="string">"four"</span>, <span class="string">"five"</span> ];</code></div></div><div class="container"><div class="line"><code><span class="keyword">var</span> obj = { one: <span class="number">1</span>, two: <span class="number">2</span>, three: <span class="number">3</span>, four: <span class="number">4</span>, five: <span class="number">5</span> };</code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code>jQuery.each( arr, <span class="keyword">function</span>( i, val ) {</code></div></div><div class="container"><div class="line"><code> $( <span class="string">"#"</span> + val ).text( <span class="string">"Mine is "</span> + val + <span class="string">"."</span> );</code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code> <span class="comment">// Will stop running after "three"</span></code></div></div><div class="container"><div class="line"><code> <span class="keyword">return</span> ( val !== <span class="string">"three"</span> );</code></div></div><div class="container"><div class="line"><code>});</code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code>jQuery.each( obj, <span class="keyword">function</span>( i, val ) {</code></div></div><div class="container"><div class="line"><code> $( <span class="string">"#"</span> + i ).append( document.createTextNode( <span class="string">" - "</span> + val ) );</code></div></div><div class="container"><div class="line"><code>});</code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;/<span class="title">script</span>&gt;</span></code></div></div><div class="container"><div class="line"><code> </code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;/<span class="title">body</span>&gt;</span></code></div></div><div class="container"><div class="line"><code><span class="tag">&lt;/<span class="title">html</span>&gt;</span></code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
<h4>Demo:</h4>
<div class="demo code-demo"></div>
</div>
<div class="entry-example" id="example-1">
<h4>Example: <span class="desc">迭代一个数组,并同时访问迭代的元素及它的索引值。</span>
</h4>
<div class="syntaxhighlighter javascript ">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code>$.each( [<span class="string">'a'</span>,<span class="string">'b'</span>,<span class="string">'c'</span>], <span class="keyword">function</span>(i, l){</code></div></div><div class="container"><div class="line"><code> alert( <span class="string">"Index #"</span> + i + <span class="string">": "</span> + l );</code></div></div><div class="container"><div class="line"><code> });</code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="entry-example" id="example-2">
<h4>Example: <span class="desc">在一个元素的属性上进行迭代,并同时访问它的键及值。</span>
</h4>
<div class="syntaxhighlighter javascript ">
<table>
<tbody>
<tr>
<td class="gutter">
<div class="line n1">1</div>
<div class="line n2">2</div>
<div class="line n3">3</div>
</td>
<td class="code">
<pre><div class="container"><div class="line"><code>$.each( { name: <span class="string">"John"</span>, lang: <span class="string">"JS"</span> }, <span class="keyword">function</span>(k, v){</code></div></div><div class="container"><div class="line"><code> alert( <span class="string">"Key: "</span> + k + <span class="string">", Value: "</span> + v );</code></div></div><div class="container"><div class="line"><code> });</code></div></div></pre>
</td>
</tr>
</tbody>
</table>
</div>
</div></section>
</div></article> </div>
</article>