<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQuery &#8211; 記下來</title>
	<atom:link href="https://noter.tw/tag/jquery/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Wed, 04 Dec 2019 01:23:05 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>jQuery &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>jQuery $(document).ready()</title>
		<link>https://noter.tw/2301/jquery-document-ready/</link>
					<comments>https://noter.tw/2301/jquery-document-ready/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Tue, 25 Sep 2012 14:05:22 +0000</pubDate>
				<category><![CDATA[網頁前端]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[$.ready()]]></category>
		<category><![CDATA[$(document).ready()]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2301</guid>

					<description><![CDATA[<p>前陣子跟新同事聊天的時候聊到，$(document).ready(function(){}});的問題，有同事就舉了個例子來說明，其實小蛙沒有真正去研究過為什麼要寫這個，只知道「寫了比較保險」，聽過例&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2301/jquery-document-ready/" data-wpel-link="internal">jQuery $(document).ready()</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p>前陣子跟新同事聊天的時候聊到，$(document).ready(function(){}});的問題，有同事就舉了個例子來說明，其實小蛙沒有真正去研究過為什麼要寫這個，只知道「寫了比較保險」，聽過例子之後恍然大悟，原來有這麼一層原因在。 </p>



<span id="more-2301"></span>



<pre class="left red">$(document).ready(function(){}});</pre>



用最最白話的方式來說，就是說<mark class="pink-solid">當整個HTML元素都被載入之後，才開始做以下動作</mark>。咦？還是覺得不重要？同事舉了一個簡單的例子



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">&lt;html&gt;
&nbsp;&nbsp;&lt;head&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type="text/javascript" src="jquery-1.8.2.min.js"&gt;&lt;/script&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type="text/javascript"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert($('#mydiv').text());
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;
&nbsp;&nbsp;&lt;/head&gt;
&nbsp;&nbsp;&lt;body&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id="mydiv"&gt;mydiv&lt;/div&gt;
&nbsp;&nbsp;&lt;/body&gt;
&lt;/html&gt;</pre>



<p>上面的例子執行後會發現，alert出來空白的東西，並不符合我們的預期，預期應該要印出mydiv的字樣。如果把alert包在$(function(){}});裡面試試 </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">&lt;html&gt;
&nbsp;&nbsp;&lt;head&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type="text/javascript" src="jquery-1.8.2.min.js"&gt;&lt;/script&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type="text/javascript"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(function(){alert($('#mydiv').text());});
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/script&gt;
&nbsp;&nbsp;&lt;/head&gt;
&nbsp;&nbsp;&lt;body&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id="mydiv"&gt;mydiv&lt;/div&gt;
&nbsp;&nbsp;&lt;/body&gt;
&lt;/html&gt;</pre>



<p>就如同預期的印出 mydiv 字樣了！會造成這個結果的原因是，head部分的JS程式碼在整個網頁還沒完整載入前就已經先執行，因此找不到 mydiv 這個 DOM 元素，而將alert程式碼放在 $(function(){}); 之中，等到整個網頁元素載入完成後才執行，自然就可以找到 mydiv 這個元素而印出當中的值了。其實這部分應該算是JavaScript基礎班，小蛙真是覺得不太好意思。 </p>



<p>附帶一提，小蛙為什麼有時候忘記加$(function(){});也還是可以正常執行呢？是因為小蛙習慣把JavaScript寫在網頁的最後，如果沒有&#8221;意外&#8221;的話，會是可以正常執行的(寫$(function(){});是好習慣！記下來吧！)。例如： </p>



<pre class="wp-block-preformatted wp-block-syntaxhighlighter-code">&lt;html&gt;
&nbsp;&nbsp;&lt;head&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;script type="text/javascript" src="jquery-1.8.2.min.js"&gt;&lt;/script&gt;
&nbsp;&nbsp;&lt;/head&gt;
&nbsp;&nbsp;&lt;body&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div id="mydiv"&gt;mydiv&lt;/div&gt;
&nbsp;&nbsp;&lt;/body&gt;
&lt;/html&gt;
&lt;script type="text/javascript"&gt;
&nbsp;&nbsp;alert($('#mydiv').text());
&lt;/script&gt;</pre>



<p>另外在 <strong><a rel="noreferrer noopener nofollow external" aria-label=" (在新分頁中開啟)" href="http://api.jquery.com/ready/" target="_blank" data-wpel-link="external" class="wpel-icon-right">jQuery官網<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong> 中提到 </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> All three of the following syntaxes are equivalent:<br> <code>$(document).ready(handler)</code><br> <code>$().ready(handler)</code>&nbsp;(this is not recommended)<br> <code>$(handler)</code> </p></blockquote>



<p>也就是說$(document).ready(function(){}); 可以縮寫成 $(function(){}});，這兩個是一樣的意思(既然一樣，為什麼不選短的來用呢 @@?) </p>



<p>更多內容可參考<strong><a rel="noreferrer noopener nofollow external" href="http://api.jquery.com/ready/" target="_blank" data-wpel-link="external" class="wpel-icon-right"> jQuery 官網<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong> 或 <strong><a rel="noreferrer noopener nofollow external" href="https://groups.google.com/forum/?fromgroups=#!topic/jquery-/Ht6r9hTsCVs" target="_blank" data-wpel-link="external" class="wpel-icon-right">此討論串<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong>。 </p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2301/jquery-document-ready/" data-wpel-link="internal">jQuery $(document).ready()</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2301/jquery-document-ready/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Javascript用RegExp達成trim()</title>
		<link>https://noter.tw/2475/javascript%e7%94%a8regexp%e9%81%94%e6%88%90trim/</link>
					<comments>https://noter.tw/2475/javascript%e7%94%a8regexp%e9%81%94%e6%88%90trim/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Mon, 14 Mar 2011 07:33:47 +0000</pubDate>
				<category><![CDATA[網頁前端]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[Regular Expression]]></category>
		<category><![CDATA[trim]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=2475</guid>

					<description><![CDATA[<p>Java 中有個功能叫做 trim()，當字串中前後可能會有空白字元的時候，可以透過 trim() 來去除，小蛙使用 JavaScript 的時候發現沒有這個功能，Google 一下找到一篇文章講解怎&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2475/javascript%e7%94%a8regexp%e9%81%94%e6%88%90trim/" data-wpel-link="internal">Javascript用RegExp達成trim()</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>Java 中有個功能叫做 <span style="color: #ff0000;"><strong>trim()</strong></span>，當字串中前後可能會有空白字元的時候，可以透過 trim() 來去除，小蛙使用 JavaScript 的時候發現沒有這個功能，Google 一下找到一篇文章講解怎麼實作一個 JavaScript trim 功能，後來同事說：「為什麼不用<strong><span style="color: #ff0000;"> jQuery.trim(str)</span> </strong>就好了？」@_@ 小蛙開發 web 都會使用到 jQuery，不過這篇文章既然打好了，就還是留下來囉！<br />
<span id="more-2475"></span><br />
直接上程式碼，下面分成清除左邊空白、清除右邊空白，在合併成清除左右空白。</p>
<pre class="brush: javascript; gutter: true">// 去除左邊空白
function lelftrim ( terms ) {
    return terms.replace ( /^[\s]*/gi, "" );
}</pre>
<pre class="brush: javascript; gutter: true">// 去除右邊空白
function righttrim ( terms ) {
    return terms.replace ( /[\s]*$/gi, "" );
}</pre>
<pre class="brush: javascript; gutter: true">// 去除左右空白
function trim ( terms ) {
    terms = lefttrim ( terms );
    terms = righttrim ( terms );
    return terms;
}</pre>
<h4>Regex 說明</h4>
<p>/^[\s]*/gi<br />
\s：會產生空白的字元，ex. &#8221; &#8220;(空白)、&#8221;\t&#8221;、&#8221;\n&#8221;、&#8221;\x0B&#8221;、&#8221;\f&#8221;、&#8221;\r&#8221;<br />
^[\s]：空白字元開頭的字串 (意思同於左邊有空白字元)<br />
^[\s]*：0 個以上空白字元開頭的字串<br />
g：global<br />
i：case insensitive<br />
/[\s]*$/gi<br />
[\s]*$：0 個以上空白字元結尾的字串 (意思同於右邊有空白字元)<br />
參考資料 <strong><a href="http://www.dotblogs.com.tw/rox/archive/2008/04/10/2753.aspx" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">Javascript function : trim() &#8211; 自訂<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong><br />
更多正則表示式可參考&nbsp;<strong><a href="http://www.javaworld.com.tw/jute/post/view?bid=20&amp;id=130126&amp;sty=1&amp;tpg=1&amp;age=0" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">Java Regular Expression的學習筆記 [精華]<span class="wpel-icon wpel-image wpel-icon-6"></span></a>&nbsp;</strong>很詳細唷！如果開發上都會直接使用 jQuery 的話，就直接使用 <strong><a href="http://api.jquery.com/jQuery.trim/" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">jQuery.trim(str)<span class="wpel-icon wpel-image wpel-icon-6"></span></a></strong> 方法就好囉！<br />
<strong>參考資料：</strong></p>
<ol>
<li>
<address>jQuery.trim() @ jQuery</address>
<address><a href="http://api.jquery.com/jQuery.trim/" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://api.jquery.com/jQuery.trim/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
<li>
<address>Java Regular Expression的學習筆記 [精華] @ JWorld@TW</address>
<address><a href="http://www.javaworld.com.tw/jute/post/view?bid=20&amp;id=130126&amp;sty=1&amp;tpg=1&amp;age=0" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://www.javaworld.com.tw/jute/post/view?bid=20&amp;id=130126&amp;sty=1&amp;tpg=1&amp;age=0<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
<li>
<address>Javascript function : trim() &#8211; 自訂 @ Rox</address>
<address><a href="http://www.dotblogs.com.tw/rox/archive/2008/04/10/2753.aspx" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://www.dotblogs.com.tw/rox/archive/2008/04/10/2753.aspx<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
</ol>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/2475/javascript%e7%94%a8regexp%e9%81%94%e6%88%90trim/" data-wpel-link="internal">Javascript用RegExp達成trim()</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/2475/javascript%e7%94%a8regexp%e9%81%94%e6%88%90trim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
