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

<channel>
	<title>jQueryTips</title>
	<atom:link href="http://www.jquerytips.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jquerytips.com</link>
	<description>The best solution to make web2.0</description>
	<pubDate>Fri, 07 Nov 2008 18:10:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Checkbox limit plugin by Tee++;</title>
		<link>http://www.jquerytips.com/2008/11/08/checkbox-limit-plugin-by-tee/</link>
		<comments>http://www.jquerytips.com/2008/11/08/checkbox-limit-plugin-by-tee/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 18:10:30 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=169</guid>
		<description><![CDATA[หลังจากหมดมุขมานาน ไม่รู้จะเขียนอะไรดี วันนี้พอดีผ่านไปเห็นเวบบอร์ดแห่งนึง ถามปัญหาเรื่องการนับจำนวน checkbox ที่ถูก checked ไปแล้ว เพื่อที่จะทำการปิด ไม่ให้สามารถกดได้อีก ก็เลยเขียนเล่นๆ เขียนไปเขียนมาก็เลยออกมาเป็นplugin เล็กๆ (เล็กมาก) แต่ว่าทำงานได้ตรงตามจุดประสงค์ ก็เลยจะเอามาให้ลองเล่นดูกัน 
โดยที่ plugin ตัวนี้จะ ทำหน้าที่นับจำนวน checkbox ที่ถูกติ๊กไปแล้ว ไม่ให้เกินจำนวนที่กำหนด ทั้งยังสามารถกำหนด action ที่จะให้เกิดขึ้นตามเงื่อนไข 2 แบบ ดังนี้
1. เมื่อ check ถึงจำนวนที่กำหนดแล้ว จะปิด checkbox ตัวที่เหลือ ไม่ให้สามารถติ๊กได้อีก จนกว่าจะ ติ๊กอันเก่าออก ให้เหลือตามที่ไม่เกินกำหนด
2. เมื่อ check เกินจำนวนที่กำหนดแล้ว จะ alert ขึ้นมาเตือน และเอาตัวที่ check ล่าสุดออกโดยอัตโนมัติ
ลองมาดูการใช้งานกันเลย 



&#60;script type=&#34;text/javascript&#34; src=&#34;jquery.js&#34;&#62;&#60;/script&#62;


&#60;script type=&#34;text/javascript&#34; src=&#34;limitbox.jquery.js&#34;&#62;&#60;/script&#62;


&#60;script language=&#34;JavaScript&#34;&#62;


&#60;!&#8211;


&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากหมดมุขมานาน ไม่รู้จะเขียนอะไรดี วันนี้พอดีผ่านไปเห็นเวบบอร์ดแห่งนึง ถามปัญหาเรื่องการนับจำนวน checkbox ที่ถูก checked ไปแล้ว เพื่อที่จะทำการปิด ไม่ให้สามารถกดได้อีก ก็เลยเขียนเล่นๆ เขียนไปเขียนมาก็เลยออกมาเป็นplugin เล็กๆ (เล็กมาก) แต่ว่าทำงานได้ตรงตามจุดประสงค์ ก็เลยจะเอามาให้ลองเล่นดูกัน </p>
<p>โดยที่ plugin ตัวนี้จะ ทำหน้าที่นับจำนวน checkbox ที่ถูกติ๊กไปแล้ว ไม่ให้เกินจำนวนที่กำหนด ทั้งยังสามารถกำหนด action ที่จะให้เกิดขึ้นตามเงื่อนไข 2 แบบ ดังนี้<span id="more-169"></span></p>
<p>1. เมื่อ check ถึงจำนวนที่กำหนดแล้ว จะปิด checkbox ตัวที่เหลือ ไม่ให้สามารถติ๊กได้อีก จนกว่าจะ ติ๊กอันเก่าออก ให้เหลือตามที่ไม่เกินกำหนด</p>
<p>2. เมื่อ check เกินจำนวนที่กำหนดแล้ว จะ alert ขึ้นมาเตือน และเอาตัวที่ check ล่าสุดออกโดยอัตโนมัติ</p>
<p>ลองมาดูการใช้งานกันเลย </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;jquery.js&quot;&gt;&lt;/script&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;limitbox.jquery.js&quot;&gt;&lt;/script&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot;&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; $(document).ready(function() {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $.limitbox({</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; el: &#8216;.box&#8217;,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; limit: 3,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; action: &#8216;alert&#8217;,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; errorMsg: &#8216;อย่ามั่วๆ พอแล้ว&#8217;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; });</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; });</div>
</li>
<li class="li1">
<div class="de1">//&#8211;&gt;</div>
</li>
<li class="li1">
<div class="de1">&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>ตรงนี้คือส่วน Script ที่มีการ include ตัว plugin กับ jQuery เข้าไปแล้ว ส่วนของการใช้งานสามารถ config ได้ตาม parameters ต่างๆ ดังนี้</p>
<p>1. <strong>el</strong> ตรงนี้คือ element ที่จะเกิดผล ซึ่งผมกำหนดให้ตัว ที่มี className = box เป็นตัวที่มีผล</p>
<p>2. <strong>limit</strong> อันนี้ก็คือ จำนวน maximum ที่สามารถให้ติ๊กได้</p>
<p>3. <strong>action</strong> ส่วนนี้ผมเขียน action ไป 2 ส่วนตามเงื่อนไขที่ได้บอกไปข้างต้นแล้ว ค่าที่ใส่ลงไปได้คือ <em>&#8220;disable&#8221;</em> กับ <em>&#8220;alert&#8221;</em></p>
<p>4. errorMsg ตัวนี้เป็น parameter ที่จะใช้กับ action = alert เท่านั้น เป็นข้อความที่จะแสดงออกมาเวลา ติ๊กไปจนเกินกำหนดแล้วนั่นเอง</p>
<p><strong>ตัวอย่าง HTML Code</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input type=&quot;checkbox&quot; name=&quot;box[]&quot; class=&quot;box&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input type=&quot;checkbox&quot; name=&quot;box[]&quot; class=&quot;box&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input type=&quot;checkbox&quot; name=&quot;box[]&quot; class=&quot;box&quot; /&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &lt;input type=&quot;checkbox&quot; name=&quot;box[]&quot; class=&quot;box&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input type=&quot;checkbox&quot; name=&quot;box[]&quot; class=&quot;box&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input type=&quot;checkbox&quot; name=&quot;box[]&quot; class=&quot;box&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>เอาล่ะหลังจากอธิบายมาพอสมควรไปดู <a href="http://www.jquerytips.com/example/limitcheckbox/demo.html">Live Demo</a> กันเลยดีกว่า<br />
<a href="http://www.jquerytips.com/example/limitcheckbox/demo.html">http://www.jquerytips.com/example/limitcheckbox/demo.html</a></p>
<p>ถ้าสนใจจะ <a href="http://www.jquerytips.com/example/limitcheckbox/limitcheckbox.zip">Download</a> ไปลองเล่นดูบ้างก็ ลองกันได้เลยครับ<br />
<a href="http://www.jquerytips.com/example/limitcheckbox/limitcheckbox.zip">http://www.jquerytips.com/example/limitcheckbox/limitcheckbox.zip</a></p>
<p>เอาล่ะวันนี้ผมก็ขอจบเท่านี้เลยละกัน แต่ขอแย้มโปรเจคใหม่นิดนึง ไหนๆผมก็เขียนเรื่อง Framwork มาพอสมควรแล้ว เร็วๆ นี้ผมจะเปิเวบให้ศึกษา เกี่ยวกับ PHP Framework บ้างแล้วกันครับ หวังว่าคงจะได้รับเสียงตอบรับเหมือนกับที่มีใน <a href="http://www.jquerytips.com/">jQueryTips.com</a> นะครับ แล้วพบกันเร็วๆ นี้ ^^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/11/08/checkbox-limit-plugin-by-tee/feed/</wfw:commentRss>
		</item>
		<item>
		<title>คำสั่ง each ใช้วนลูป ก็สะดวกดีนะ</title>
		<link>http://www.jquerytips.com/2008/11/06/each-jquery/</link>
		<comments>http://www.jquerytips.com/2008/11/06/each-jquery/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 07:29:27 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[Basic]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=166</guid>
		<description><![CDATA[javascript นั้นมีตัวแปรที่เก็บในลักษณะ array, object ซึ่งข้อมูเหล่านี้ การที่เราจะเข้าถึงมันจะต้องใช้ loop ต่างๆ ซึ่งการเขียนมันก็ยาวนิดนึง แต่ไม่ต้องห่วง jQuery ขึ้นชื่อว่า framework แล้ว ไม่เคยพลาดที่จะเตรียมเรื่อง loop มาให้ นั่นก็คือคำสั่ง &#8220;each&#8221; นั่นเอง การใช้งานก็แสนที่จะง่าย แทบจะไม่ต้องมาศึกษาอะไรเลย
ทีนี้เราลองมาดูกันว่ามันเป็นยังไง ไอ้คำสั่ง each เนี่ย
สมมุติว่าผมได้ object มาจาก JSON format ผมสามารถเอามาวนลูป ลักษณะนี้ได้เลย 



$.getJSON(&#8217;somejsonurl.php&#8217;, {query: &#8216;xxx&#8217; },



&#160; function(str)



&#160; {



&#160; &#160; $.each(str, function(key, item) {



&#160; &#160; &#160; alert( item.node ); // Output here



&#160; &#160; });



&#160; }



);



หรือจะเอามาวนลูปเวลา Get ค่าต่าง [...]]]></description>
			<content:encoded><![CDATA[<p>javascript นั้นมีตัวแปรที่เก็บในลักษณะ array, object ซึ่งข้อมูเหล่านี้ การที่เราจะเข้าถึงมันจะต้องใช้ loop ต่างๆ ซึ่งการเขียนมันก็ยาวนิดนึง แต่ไม่ต้องห่วง jQuery ขึ้นชื่อว่า framework แล้ว ไม่เคยพลาดที่จะเตรียมเรื่อง loop มาให้ นั่นก็คือคำสั่ง &#8220;each&#8221; นั่นเอง การใช้งานก็แสนที่จะง่าย แทบจะไม่ต้องมาศึกษาอะไรเลย</p>
<p>ทีนี้เราลองมาดูกันว่ามันเป็นยังไง ไอ้คำสั่ง each เนี่ย<span id="more-166"></span></p>
<p>สมมุติว่าผมได้ object มาจาก JSON format ผมสามารถเอามาวนลูป ลักษณะนี้ได้เลย </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$.getJSON(&#8217;somejsonurl.php&#8217;, {query: &#8216;xxx&#8217; },
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; function(str)
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; {
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $.each(str, function(key, item) {
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; alert( item.node ); // Output here
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; });
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; }
</div>
</li>
<li class="li1">
<div class="de1">);</div>
</li>
</ol>
</div>
<p>หรือจะเอามาวนลูปเวลา Get ค่าต่าง ที่ return มาในลักษณะ array ก็ได้ เช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;input&#8217;).each(function() {
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; alert( $(this).attr(&#8217;name&#8217;) ); // Output here
</div>
</li>
<li class="li1">
<div class="de1">});</div>
</li>
</ol>
</div>
<p>เท่านี้เอง ง่ายมั้ยล่ะครับ ที่จริงวันนี้ไม่รู้จะอัพเดทไร เลยเอาเรื่อง ง่ายๆ มาบอก ใครรู้แล้วก็อย่าว่ากันเลยนะครับ 555</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/11/06/each-jquery/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ใช้ jQuery เพื่อแก้ปัญหา W3C</title>
		<link>http://www.jquerytips.com/2008/10/28/jquery-seo-w3/</link>
		<comments>http://www.jquerytips.com/2008/10/28/jquery-seo-w3/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 03:48:40 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[SEO]]></category>

		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=162</guid>
		<description><![CDATA[W3C นับวันยิ่งเข้มงวด เข้มข้นขึ้น ทุกที ไอ้นู่นก็ไม่ได้ ไอ้นี่ก็ validate ไม่ผ่าน ทำเอาทั้ง designer และ programmer ปั่นป่วน รวนเรเสียขบวน ต้องมาตามล้างตามเช็ด code แก้ไขกันให้วุ่น ทีนี้เราจะมาลองใช้ jQuery ในการแก้ปัญหา Tags หรือ Attributes ที่ไม่ support แต่เราจำเป็นต้องใช้กันดีกว่า 
Attribute: target=&#8221;_blank&#8221;
attr นี้ w3c ไม่ให้ผ่านแล้วครับ ทีนี้ เราจะเอา jQuery เข้ามาแก้กัน แบบนี้



&#60;a href=&#34;xxx&#34; class=&#34;external&#34;&#62;xxxx&#60;/a&#62;



แก้ด้วย jQuery 



$(&#8217;.external&#8217;).attr(&#8217;target&#8217;, &#8216;_blank&#8217;)




Attribute: autocomplete=&#8221;off&#8221;
attr นี้ก็ไม่ผ่าน w3c ครับ แต่บางทีเราจำเป็นต้องใช้ เช่นในช่อง username เราไม่อยากให้มันจำค่าเอาไว้ 



&#60;input type=&#34;text&#34; name=&#34;username&#34; class=&#34;forgotme&#34; /&#62;



แก้ด้วย jQuery [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.w3c.org/">W3C</a> นับวันยิ่งเข้มงวด เข้มข้นขึ้น ทุกที ไอ้นู่นก็ไม่ได้ ไอ้นี่ก็ validate ไม่ผ่าน ทำเอาทั้ง designer และ programmer ปั่นป่วน รวนเรเสียขบวน ต้องมาตามล้างตามเช็ด code แก้ไขกันให้วุ่น ทีนี้เราจะมาลองใช้ jQuery ในการแก้ปัญหา Tags หรือ Attributes ที่ไม่ support แต่เราจำเป็นต้องใช้กันดีกว่า <span id="more-162"></span></p>
<p><strong>Attribute: target=&#8221;_blank&#8221;</strong><br />
attr นี้ w3c ไม่ให้ผ่านแล้วครับ ทีนี้ เราจะเอา jQuery เข้ามาแก้กัน แบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;a href=&quot;xxx&quot; class=&quot;external&quot;&gt;xxxx&lt;/a&gt;</div>
</li>
</ol>
</div>
<p>แก้ด้วย jQuery </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;.external&#8217;).attr(&#8217;target&#8217;, &#8216;_blank&#8217;)</div>
</li>
</ol>
</div>
<p><strong><br />
Attribute: autocomplete=&#8221;off&#8221;</strong><br />
attr นี้ก็ไม่ผ่าน w3c ครับ แต่บางทีเราจำเป็นต้องใช้ เช่นในช่อง username เราไม่อยากให้มันจำค่าเอาไว้ </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;input type=&quot;text&quot; name=&quot;username&quot; class=&quot;forgotme&quot; /&gt;</div>
</li>
</ol>
</div>
<p>แก้ด้วย jQuery </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;.forgotme&#8217;).attr(&#8217;autocomplete&#8217;, &#8216;off&#8217;)</div>
</li>
</ol>
</div>
<p>เห็นมั้ยแก้ไขง่ายนิดเดียวเอง ทีนี้เราจะไป validate ผ่าน W3C ก็จะผ่านได้อย่างไม่ยากเย็น เพราะว่า tag พวกนี้ถูก create on the fly จาก js ซึ่ง W3C ไม่สามารถอ่านเข้ามาถึงตรงนั้น</p>
<p>ต่อไปนี้ถ้า tag ไหนมีปัญหาก็ลองใช้วิธีการแก้ไขแบบนี้ดูนะครับ วันนี้พอแค่นี้ละ สวัสดี@</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/10/28/jquery-seo-w3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>งานวิจัยระดับของความ &#8220;เมา&#8221;</title>
		<link>http://www.jquerytips.com/2008/10/21/drunk-level/</link>
		<comments>http://www.jquerytips.com/2008/10/21/drunk-level/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 16:35:17 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<category><![CDATA[Others]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=159</guid>
		<description><![CDATA[วันนี้สักวันนึงขอไร้สาระบ้างเหอะ เพราะชอบจริงๆ กับงานวิจัยชั้น Platinum อันนี้ ลองไปอ่านเองเลยดีกว่า อิอิ
สถาบันด๊อกเตอร์มาร์ตินได้แบ่งระดับความเมาเหล้าของมนุษย์ไว้ 5
ระดับด้วยกันคือ:

ระดับที่ 1: SMART(ฉลาด)
- เมื่อคนดื่มเหล้าเข้าไปเมาจนถึงระดับนี้ซึ่งเป็นระดับแรก จะรอบรู้ทุกสิ่งทุกอย่างในจักรวาล และมักจะชอบเผื่อแผ่ความรู้ให้ทุกๆคนในบาร์ ความเป็นจริงทุกอย่างในจักรวาลจะถูกนำออกมาเปิดเผยหมด ไม่ว่าใครจะพูดเรื่องอะไรคุณจะกลายเป็นผู้เชี่ยวชาญทางด้านนั้นพอดิบพอดี และคุณจะรู้สึกว่าทุกๆอย่างที่คนอื่นพูดมาจะเป็นเรื่องผิดไปหมด ไม่ตรงกับข้อมูลที่คุณมี จึงจะมีการเริ่มตั้งข้อโต้แย้งต่างๆกัน
ระดับที่ 2: GOOD LOOKING(ดูดี)
- คุณจะเริ่มค้นพบว่าคุณมีรูปร่างหน้าตาที่ดูดีที่สุดในละแวกนั้นและทุกๆคนเริ่มที่จะ หันมาสนใจคุณเพราะคุณดูดี แน่นอนคุณสามารถเดินไปคุยกับทุกๆคนได้ทุกๆ เรื่องด้วยเพราะคุณทั้งดูดี และฉลาด

ระดับที่ 3: RICH(รวย)
- เมื่อเมาถึงระดับนี้คุณจะค้นพบว่าตัวเองนั้นมีเงินมหาศาล คุณสามารถที่จะเลี้ยงเหล้าทุกคนในบาร์ได้ เพราะคุณมีเงินมหาศาล
และถ้าใครพูดอะไรผิดหูคุณสามารถที่จะท้าพนันได้ทุกเรื่องเพราะคุณยังฉลาดกว่าด้วย นอกจากนี้คุณยังดูดีมากๆด้วย
ระดับที่ 4: BULLET PROOF(คงกระพัน)
- เมื่อเมาถึงระดับนี้ตัวคุณจะมีวิชาคงกระพันแก่กล้ากว่าคนทั่วไปและ พร้อมที่จะเข้าห้ำหั่นกับทุกๆคนได้ เพราะไม่มีใครจะทำอันตรายคุณได้ คุณสามารถท้าพนันตีต่อยกับเพื่อนคุณก็ได้ และคุณก็ไม่กลัวแพ้ด้วย เพราะว่าคุณทั้งฉลาด, ทั้งดูดี, ทั้งรวยและต่อสู้เก่งระดับนักมวยอาชีพ
ระดับที่ 5: INVISIBLE(หายตัว)
- ระดับความเมาสุดยอด คุณต้องดื่มมากจึงจะเมาถึงระดับนี้ได้ด้วย ความเมาที่ระดับนี้คุณสามารถทำอะไรก็ได้ เพราะไม่มีใครเห็นคุณ, จะไปเต้นรำบนโต๊ะ, แหกปากร้องเพลงกลางถนน, ไล่ตีหัวคนอื่นก็ทำได้เพราะไม่มีใครเห็นคุณ
เชื่อมั้ยผมเคยเห็นคนเมาถึงระดับ 5 ด้วย (เนอะพี่สาย [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้สักวันนึงขอไร้สาระบ้างเหอะ เพราะชอบจริงๆ กับงานวิจัยชั้น Platinum อันนี้ ลองไปอ่านเองเลยดีกว่า อิอิ</p>
<p><strong>สถาบันด๊อกเตอร์มาร์ตินได้แบ่งระดับความเมาเหล้าของมนุษย์ไว้ 5</strong><br />
ระดับด้วยกันคือ:<br />
<strong><br />
ระดับที่ 1: SMART(ฉลาด)</strong><br />
- เมื่อคนดื่มเหล้าเข้าไปเมาจนถึงระดับนี้ซึ่งเป็นระดับแรก จะรอบรู้ทุกสิ่งทุกอย่างในจักรวาล และมักจะชอบเผื่อแผ่ความรู้ให้ทุกๆคนในบาร์ ความเป็นจริงทุกอย่างในจักรวาลจะถูกนำออกมาเปิดเผยหมด ไม่ว่าใครจะพูดเรื่องอะไรคุณจะกลายเป็นผู้เชี่ยวชาญทางด้านนั้นพอดิบพอดี และคุณจะรู้สึกว่าทุกๆอย่างที่คนอื่นพูดมาจะเป็นเรื่องผิดไปหมด ไม่ตรงกับข้อมูลที่คุณมี จึงจะมีการเริ่มตั้งข้อโต้แย้งต่างๆกัน<span id="more-159"></span></p>
<p><strong>ระดับที่ 2: GOOD LOOKING(ดูดี)</strong><br />
- คุณจะเริ่มค้นพบว่าคุณมีรูปร่างหน้าตาที่ดูดีที่สุดในละแวกนั้นและทุกๆคนเริ่มที่จะ หันมาสนใจคุณเพราะคุณดูดี แน่นอนคุณสามารถเดินไปคุยกับทุกๆคนได้ทุกๆ เรื่องด้วยเพราะคุณทั้งดูดี และฉลาด<br />
<strong><br />
ระดับที่ 3: RICH(รวย)</strong><br />
- เมื่อเมาถึงระดับนี้คุณจะค้นพบว่าตัวเองนั้นมีเงินมหาศาล คุณสามารถที่จะเลี้ยงเหล้าทุกคนในบาร์ได้ เพราะคุณมีเงินมหาศาล<br />
และถ้าใครพูดอะไรผิดหูคุณสามารถที่จะท้าพนันได้ทุกเรื่องเพราะคุณยังฉลาดกว่าด้วย นอกจากนี้คุณยังดูดีมากๆด้วย</p>
<p><strong>ระดับที่ 4: BULLET PROOF(คงกระพัน)</strong><br />
- เมื่อเมาถึงระดับนี้ตัวคุณจะมีวิชาคงกระพันแก่กล้ากว่าคนทั่วไปและ พร้อมที่จะเข้าห้ำหั่นกับทุกๆคนได้ เพราะไม่มีใครจะทำอันตรายคุณได้ คุณสามารถท้าพนันตีต่อยกับเพื่อนคุณก็ได้ และคุณก็ไม่กลัวแพ้ด้วย เพราะว่าคุณทั้งฉลาด, ทั้งดูดี, ทั้งรวยและต่อสู้เก่งระดับนักมวยอาชีพ</p>
<p><strong>ระดับที่ 5: INVISIBLE(หายตัว)</strong><br />
- ระดับความเมาสุดยอด คุณต้องดื่มมากจึงจะเมาถึงระดับนี้ได้ด้วย ความเมาที่ระดับนี้คุณสามารถทำอะไรก็ได้ เพราะไม่มีใครเห็นคุณ, จะไปเต้นรำบนโต๊ะ, แหกปากร้องเพลงกลางถนน, ไล่ตีหัวคนอื่นก็ทำได้เพราะไม่มีใครเห็นคุณ</p>
<p>เชื่อมั้ยผมเคยเห็นคนเมาถึงระดับ 5 ด้วย (เนอะพี่สาย อิอิ)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/10/21/drunk-level/feed/</wfw:commentRss>
		</item>
		<item>
		<title>อยากรู้ว่า Iframe ทำการโหลดเสร็จแล้วรึยัง?</title>
		<link>http://www.jquerytips.com/2008/10/19/check-load-status-using-jquery/</link>
		<comments>http://www.jquerytips.com/2008/10/19/check-load-status-using-jquery/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 12:37:08 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=151</guid>
		<description><![CDATA[เอาล่ะครับ ช่วงนี้อากาศหนาวเริ่มมาเยือน สลับกับฝนตกเล็กน้อย ก็เลยนึกอยากมาอัพเดทบล๊อกบ้าง (เกี่ยวกันมั้ยเนี่ย) วันนี้มี Tip เล็กๆน้อยสำหรับ ทำการเช็ค Statu ของ Iframe ว่าทำการโหลดเสร็จแล้วรึยัง&#8230;. 
อ้าวแล้วทำไมเราต้องอยากรู้?
หลายคนอาจมีคำถามในใจ 555 สำหรับตัวผมเองมันมีประโยชน์แบบนี้ครับ เช่นเวลาที่ผมสั่ง iframe มัน hide เอาไว้ ด้วย display:none ซึ่งแน่นอน มันก็ยังทำการโหลดเป็น background process อยู่ดี แล้วทีนี้ถ้าอยากบอกว่าเมื่อโหลดเสร็จให้มันแสดงล่ะจะทำไงดี? 
นี่ล่ะครับประโยชน์ของ Tip! ที่จะมาแนะนกันในวันนี้ ซึ่งวิธีการเขียน โครตจะแสนง่ายจนไม่รู้จะบรรยายยังไงแล้ว แค่ 2-3 บรรทัดก็รู้เรื่อง ตัวอย่างเช่น ผมมี iframe แบบนี้



&#60;iframe src=&#34;http://www.jQueryTips.com&#34; id=&#34;myiframe&#34;&#62;&#60;/iframe&#62;



ผมจะเขียนเช็คดูว่ามัน load ไปเสร็จยังก็จะเขียนว่า&#8230;.



$(function() {


&#160; $(&#8217;#myiframe&#8217;).load(function() {


&#160; &#160; alert(&#8217;iframe โหลดเรียบร้อยแล้วคร๊าบบบบบ&#8217;);


&#160; });


});



และนอกจากจะเอาวิธีนี้ไปใช้กับ iframe แล้ว ยังเอามาประยุกต์ใช้กับการ [...]]]></description>
			<content:encoded><![CDATA[<p>เอาล่ะครับ ช่วงนี้อากาศหนาวเริ่มมาเยือน สลับกับฝนตกเล็กน้อย ก็เลยนึกอยากมาอัพเดทบล๊อกบ้าง (เกี่ยวกันมั้ยเนี่ย) วันนี้มี Tip เล็กๆน้อยสำหรับ ทำการเช็ค Statu ของ Iframe ว่าทำการโหลดเสร็จแล้วรึยัง&#8230;. </p>
<p>อ้าวแล้วทำไมเราต้องอยากรู้?</p>
<p>หลายคนอาจมีคำถามในใจ 555 สำหรับตัวผมเองมันมีประโยชน์แบบนี้ครับ เช่นเวลาที่ผมสั่ง iframe มัน hide เอาไว้ ด้วย display:none ซึ่งแน่นอน มันก็ยังทำการโหลดเป็น background process อยู่ดี แล้วทีนี้ถ้าอยากบอกว่าเมื่อโหลดเสร็จให้มันแสดงล่ะจะทำไงดี? <span id="more-151"></span></p>
<p>นี่ล่ะครับประโยชน์ของ Tip! ที่จะมาแนะนกันในวันนี้ ซึ่งวิธีการเขียน โครตจะแสนง่ายจนไม่รู้จะบรรยายยังไงแล้ว แค่ 2-3 บรรทัดก็รู้เรื่อง ตัวอย่างเช่น ผมมี iframe แบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;iframe src=&quot;http://www.jQueryTips.com&quot; id=&quot;myiframe&quot;&gt;&lt;/iframe&gt;</div>
</li>
</ol>
</div>
<p>ผมจะเขียนเช็คดูว่ามัน load ไปเสร็จยังก็จะเขียนว่า&#8230;.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(function() {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $(&#8217;#myiframe&#8217;).load(function() {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; alert(&#8217;iframe โหลดเรียบร้อยแล้วคร๊าบบบบบ&#8217;);</div>
</li>
<li class="li1">
<div class="de1">&nbsp; });</div>
</li>
<li class="li2">
<div class="de2">});</div>
</li>
</ol>
</div>
<p>และนอกจากจะเอาวิธีนี้ไปใช้กับ iframe แล้ว ยังเอามาประยุกต์ใช้กับการ load image ได้ด้วย โดยรูปแบบก็ไม่ได้จะต่างกันเลยล่ะ</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;img src=&quot;http://&#8230;..jpg&quot; id=&quot;mypicture&quot; /&gt;</div>
</li>
</ol>
</div>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(function() {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; $(&#8217;#mypicture&#8217;).load(function() {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; alert(&#8217;image โหลดเรียบร้อยแล้วคร๊าบบบบบ&#8217;);</div>
</li>
<li class="li1">
<div class="de1">&nbsp; });</div>
</li>
<li class="li2">
<div class="de2">});</div>
</li>
</ol>
</div>
<p>เอาล่ะครับ ก่อนจะจากกันไปวันนี้ ผมมีเพลงที่ตอนนี้กำลังชอบมากมาฝากกัน (อย่าไปฟ้องค่ายเค้าล่ะ) ไปฟังกันแล้วก็นอนหลับฝันดีนะ </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/10/19/check-load-status-using-jquery/feed/</wfw:commentRss>
<enclosure url="http://www.jquerytips.com/song/around-together.mp3" length="3708704" type="audio/mpeg" />
		</item>
		<item>
		<title>เรียนรู้การเชื่อมต่อ API ผ่าน Protocol JSONp</title>
		<link>http://www.jquerytips.com/2008/10/12/api-jsonp/</link>
		<comments>http://www.jquerytips.com/2008/10/12/api-jsonp/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 15:50:09 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[Others]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[jsonp api]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=149</guid>
		<description><![CDATA[มาอัพเดทแล้ว! วันนี้จะขอแนะนำ Protocol ของ API ซึ่งกำลังมาแรง เพราะว่าใช้งานง่าย และสามารถทำงานผ่าน Client ได้เลย โดยไม่ต้องพึ่ง Server Side Script นั่นก็คือ JSONp
JSONp เป็น Protocol ที่ใช้เชื่อมเพื่อทำงานกับ Web Service จากที่ต่างๆ โดย API ที่ดังๆ มักจะเตรียมมาไว้ให้ โดยรูปแบบและลักษณะการทำงานจะเป็นดังนี้
1. Request ส่งไปที่ API โดย กำหนดชื่อ Function ที่จะให้ Return หรือ Callback นั่นเอง โดยผมจะยกตัวอย่าง Twitter ดังนี้



http://www.twitter.com/statuses/user_timeline/username.json?callback=twitterCallback&#38;count=20



URL นี้เป็นการเรียก API ของ Twitter ผ่าน JSONp โดยกำหนดให้ Callback เป็น twitterCallback
2. รับค่าที่ Return โดยการสร้าง Tag [...]]]></description>
			<content:encoded><![CDATA[<p>มาอัพเดทแล้ว! วันนี้จะขอแนะนำ Protocol ของ API ซึ่งกำลังมาแรง เพราะว่าใช้งานง่าย และสามารถทำงานผ่าน Client ได้เลย โดยไม่ต้องพึ่ง Server Side Script นั่นก็คือ <a href="http://en.wikipedia.org/wiki/JSON#JSONP" target="_blank">JSONp</a></p>
<p>JSONp เป็น Protocol ที่ใช้เชื่อมเพื่อทำงานกับ Web Service จากที่ต่างๆ โดย API ที่ดังๆ มักจะเตรียมมาไว้ให้ โดยรูปแบบและลักษณะการทำงานจะเป็นดังนี้<span id="more-149"></span></p>
<p>1. Request ส่งไปที่ API โดย กำหนดชื่อ Function ที่จะให้ Return หรือ Callback นั่นเอง โดยผมจะยกตัวอย่าง Twitter ดังนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">http://www.twitter.com/statuses/user_timeline/username.json?callback=twitterCallback&amp;count=20</div>
</li>
</ol>
</div>
<p>URL นี้เป็นการเรียก API ของ Twitter ผ่าน JSONp โดยกำหนดให้ Callback เป็น <strong>twitterCallback</strong></p>
<p>2. รับค่าที่ Return โดยการสร้าง Tag Script ไว้รองรับ</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">http://www.twitter.com/statuses/user_timeline/tenshin99.json?callback=twitterCallback&amp;count=20</div>
</li>
</ol>
</div>
<p>โดยตัวอย่างผมจะเอา Twitter Account ของผมมาทดสอบดู ถ้าลองดูผ่าน URL ด้านบนจะสังเกตุเห็นได้ว่า ค่าทั้งหมดจะถูกบรรจุ ในรูปแบบของ JavaScript Function ที่มีชื่อว่า <strong>twitterCallback(&#8230;.)</strong></p>
<p>ต่อจากนั้นผมก็จะมาสร้าง Node เพื่อนำ URL นี้ใส่เข้าไป เพื่อที่จะนำค่ามาใช้งาน</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">var scriptEl = $(&#8217;&lt;script&gt;&#8217;);</div>
</li>
<li class="li1">
<div class="de1">scriptEl.attr(&#8217;src&#8217;, apiUrl);</div>
</li>
<li class="li1">
<div class="de1">$(&#8217;head&#8217;).append(scriptEl);</div>
</li>
<li class="li1">
<div class="de1">window['twitterCallback'] = function (obj) { </div>
</li>
<li class="li2">
<div class="de2">// do something here</div>
</li>
<li class="li1">
<div class="de1">}</div>
</li>
</ol>
</div>
<p><em>** jQuery Style</em></p>
<p>จากนั้นผมก็สามารถนำค่าที่อยู่ ใน function มาใช้งานต่อได้เลยเช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$.each(obj, i, item) {</div>
</li>
<li class="li1">
<div class="de1">&nbsp; alert(item.text);</div>
</li>
<li class="li1">
<div class="de1">}</div>
</li>
</ol>
</div>
<p>แค่นี้ผมก็จะได้ค่ามาทั้งหมดเรียบร้อย ซึ่ง API แบบ JSONp นี้มีข้อดีคือ Implement ค่อนข้างง่าย และเสียเวลา Learning ค่อนข้างสั้น รวมไปถึง ไม่มีข้อจำกัดในเรื่อง Rate Limit ของ API เพราะว่า ให้ Client เป็นคนดึงขอมูลเข้ามาเอง จะสะดวกมากสำหรับ API ที่ดัก Server IP เพราะนี่มันต่างคนต่างดึง ใช้ Client IP แทน</p>
<p>แต่ข้อเสียก็มีไม่น้อยนั่นก็คือ API แบบนี้มักจะ สามารถทำได้แค่การ Fetch Data แต่มักจะไม่ Provide ส่วนของการ POST Parameters เข้าไป เช่นพวก Method Insert ต่างๆ แต่ผมว่า เ้ท่านี้ก็สะดวกมากพอแล้ว</p>
<p>และก็อีกเรื่องที่สำคัญกับคนสร้างเวบในยุดคนี้ก็คือ &#8220;มันไม่ Support SEO&#8221; เพราะว่าใช้การ Render ผ่าน DOM โดยตรง ไม่มี Source Code ในรูปแบบ ที่ Bot View ได้</p>
<p>เอาล่ะครับสาระสำคัญก็หมดไปแล้ว เอาเป็นว่าวันนี้ลากันไปเท่านี้แหละ สวัสดีครับ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/10/12/api-jsonp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery’s selectors Part 3</title>
		<link>http://www.jquerytips.com/2008/09/28/jquery%e2%80%99s-selectors-part-3/</link>
		<comments>http://www.jquerytips.com/2008/09/28/jquery%e2%80%99s-selectors-part-3/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 14:58:41 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=145</guid>
		<description><![CDATA[หายไปนานกว่าจะมาอัพเดท บทความที่มีสาระเสียที วันนี้ฝนตกพรำๆ มีเวลาว่างนิดหน่อยเลยมาอัพเดทกันต่อเลย เพื่อที่จะได้ไม่เสียเวลา เราไปเริ่มกันเลยดีกว่า เพราะยังมี อีกเป็นกะตั๊ก ให้เอามาอัพเดทกัน 
ต่อกันเลยนะ&#8230;.
Content Filters:
:contains(text)
ตัวนี้เป็นการ Filter เพื่อจะหา text ใน element นั่นเอง 
เช่นการจะหา element div ที่มี text คำว่า Tee ปรากฎอยู่ก็จะใช้ว่า



$(&#8217;div:contains(&#34;Tee&#34;)&#8217;)



:empty
อันนี้จะเป็นการหา element ที่มีค่าว่างอยู่ ตัวอย่างเช่น



$(&#8217;table td:empty&#8217;).text(&#8217;n/a&#8217;)



:has
เป็นการหา element ที่มีอยู่ใน parent เช่น



$(&#8217;div:has(&#34;p&#34;)&#8217;)



:parent
ตัวยี้จะใช้หาค่า parent ของ element เช่น



$(&#8217;td:parent&#8217;)



แบบนี้ค่าที่ได้ควรจะเป็น tr เพราะว่า tr เป็น paraent ของ td นั่นเอง
เอาล่ะพอแล้วกับเรื่องของ Selectors จริงๆมัน เหลืออีก 3 เรื่องที่ยังไม่ได้พูดถึง แต่ว่าน่าจะศึกษาเองต่อได้แล้วเพราะมันไม่ได้ยากอะไรเลย ก็คือเรื่อง
Attribute Filters, Child Filters, [...]]]></description>
			<content:encoded><![CDATA[<p>หายไปนานกว่าจะมาอัพเดท บทความที่มีสาระเสียที วันนี้ฝนตกพรำๆ มีเวลาว่างนิดหน่อยเลยมาอัพเดทกันต่อเลย เพื่อที่จะได้ไม่เสียเวลา เราไปเริ่มกันเลยดีกว่า เพราะยังมี อีกเป็นกะตั๊ก ให้เอามาอัพเดทกัน </p>
<p>ต่อกันเลยนะ&#8230;.<span id="more-145"></span></p>
<p><strong>Content Filters:</strong><br />
<strong>:contains(text)</strong><br />
ตัวนี้เป็นการ Filter เพื่อจะหา text ใน element นั่นเอง </p>
<p>เช่นการจะหา element div ที่มี text คำว่า Tee ปรากฎอยู่ก็จะใช้ว่า</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;div:contains(&quot;Tee&quot;)&#8217;)</div>
</li>
</ol>
</div>
<p><strong>:empty</strong><br />
อันนี้จะเป็นการหา element ที่มีค่าว่างอยู่ ตัวอย่างเช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;table td:empty&#8217;).text(&#8217;n/a&#8217;)</div>
</li>
</ol>
</div>
<p><strong>:has</strong><br />
เป็นการหา element ที่มีอยู่ใน parent เช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;div:has(&quot;p&quot;)&#8217;)</div>
</li>
</ol>
</div>
<p><strong>:parent</strong><br />
ตัวยี้จะใช้หาค่า parent ของ element เช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;td:parent&#8217;)</div>
</li>
</ol>
</div>
<p>แบบนี้ค่าที่ได้ควรจะเป็น tr เพราะว่า tr เป็น paraent ของ td นั่นเอง</p>
<p>เอาล่ะพอแล้วกับเรื่องของ Selectors จริงๆมัน เหลืออีก 3 เรื่องที่ยังไม่ได้พูดถึง แต่ว่าน่าจะศึกษาเองต่อได้แล้วเพราะมันไม่ได้ยากอะไรเลย ก็คือเรื่อง<br />
Attribute Filters, Child Filters, Forms, Form Filters </p>
<p>ซึ่งเรื่องที่เหลือนี้ก็มีประโยชน์ค่อนข้างมากยังไงลองไปศึกษากันต่อเอานะครับ ครั้งหน้าจะขึ้นเรื่องใหม่แล้ว ^^</p>
<p>ปล. บทความนี้ใช้เวลาอัพเดทลวกๆ แค่ 5 นาทีเอง อิอิ ง่ายจริงๆ แปล manual เนี่ย</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/09/28/jquery%e2%80%99s-selectors-part-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PR Update แล้วคร๊าบบบบ</title>
		<link>http://www.jquerytips.com/2008/09/27/jquerytips-pr/</link>
		<comments>http://www.jquerytips.com/2008/09/27/jquerytips-pr/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 16:31:45 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=137</guid>
		<description><![CDATA[วันนี้ไม่ได้จะมาอัพเดทไร เป็นสาระหรอกครับ เพียงแต่หายไปนานเดี๋ยว Google จะบอกว่าไม่ยอมอัพเดทกันเลย ทว่าจริงๆ วันนี้ก็มีเรื่องสำคัญจะมาเล่านั่นก็คือ PR ขึ้นแล้วคร๊าบบบบ หลังจากได้ข่าวว่า Google ทำการอัพเดท PR แล้ว ก็เลยอยากรู้ว่า jQueryTips จะขึ้นกับเค้าบ้างรึเปล่า ในใจก็หวังไว้นิดหน่อยว่า อาจจะขยับจาก 2 มาเป็น 3 ก็ได้ ด้วยเหตุที่ไม่ได้ทำ SEO อะไรกับเวบนี้มากนัก แต่ต้องตกใจครับ เมื่อเข้ามาดูมันเป็น 4 แล้ว อิอิ 

ก็เลยตั้งใจว่าจะลองมาทำ SEO ให้มันดูซะหน่อย เป้าหมายคือ PR5 ในการอัพเดทครั้งหน้า ^^
อีกเรื่องที่เซ็งของวันนี้ นั่นก็คือการดูหนังเรื่อง Friendship เธอกับฉัน ก่อนดูก็หวังไว้ว่าหนังมันคงออกมาแนวๆ ค่าย GTS ต้องมีอะไรให้อิ่มใจ หรือย้อนภาพวันเก่าๆ ได้แน่ๆ
เริ่มต้นดู อย่างตั้งใจ แรกๆก็พยายามอดทนคิดเอาเองว่า อย่างนี้ล่ะว่ะ หนังมันคงต้องไต่ระดับความสนุกขึ้นไปเรื่อย ก็ทนดูไปหาวไป ในใจเริ่มคิดละ น่าจะมีไรให้ตื่นเต้นหรืออยากรู้เป็น น้ำจิ้มสักหน่อยก็ยังดี [...]]]></description>
			<content:encoded><![CDATA[<p>วันนี้ไม่ได้จะมาอัพเดทไร เป็นสาระหรอกครับ เพียงแต่หายไปนานเดี๋ยว Google จะบอกว่าไม่ยอมอัพเดทกันเลย ทว่าจริงๆ วันนี้ก็มีเรื่องสำคัญจะมาเล่านั่นก็คือ PR ขึ้นแล้วคร๊าบบบบ หลังจากได้ข่าวว่า <a href="http://www.google.com">Google</a> ทำการอัพเดท PR แล้ว ก็เลยอยากรู้ว่า jQueryTips จะขึ้นกับเค้าบ้างรึเปล่า ในใจก็หวังไว้นิดหน่อยว่า อาจจะขยับจาก 2 มาเป็น 3 ก็ได้ ด้วยเหตุที่ไม่ได้ทำ SEO อะไรกับเวบนี้มากนัก แต่ต้องตกใจครับ เมื่อเข้ามาดูมันเป็น 4 แล้ว อิอิ <span id="more-137"></span><br />
<a href="http://www.jquerytips.com/wp-content/uploads/2008/09/pr4.gif"><img src="http://www.jquerytips.com/wp-content/uploads/2008/09/pr4.gif" alt="" title="pr4" width="158" height="27" class="alignnone size-full wp-image-138" /></a></p>
<p>ก็เลยตั้งใจว่าจะลองมาทำ SEO ให้มันดูซะหน่อย เป้าหมายคือ PR5 ในการอัพเดทครั้งหน้า ^^</p>
<p>อีกเรื่องที่เซ็งของวันนี้ นั่นก็คือการดูหนังเรื่อง Friendship เธอกับฉัน ก่อนดูก็หวังไว้ว่าหนังมันคงออกมาแนวๆ ค่าย GTS ต้องมีอะไรให้อิ่มใจ หรือย้อนภาพวันเก่าๆ ได้แน่ๆ</p>
<p>เริ่มต้นดู อย่างตั้งใจ แรกๆก็พยายามอดทนคิดเอาเองว่า อย่างนี้ล่ะว่ะ หนังมันคงต้องไต่ระดับความสนุกขึ้นไปเรื่อย ก็ทนดูไปหาวไป ในใจเริ่มคิดละ น่าจะมีไรให้ตื่นเต้นหรืออยากรู้เป็น น้ำจิ้มสักหน่อยก็ยังดี นี่อะไรไม่รู้ เนื้อเรื่องมั่ว เละเทะ ไปหมด อยากให้เกิดอะไรก็เกิด เหมือนกับคิดไรได้ก็ใส่มันเข้าไปมั่วๆ มันอย่างนั้นแหละ มีที่ไหนอยู่ดีๆ อยากให้มีใครมาตีกัน ก็โผล่มาเป็นแก๊งค์นักเรียนช่างกล ตีกันเสร็จก็แยกย้าย ไม่ได้ช่วยเพิ่มวุฒิปัญญาของผู้ชม ให้เข้าใจกับเหตุการณ์ที่จะสื่ออะไรเลย หลังๆ นี่ยิ่งออกทะเล ไปกันใหญ่ดูแล้ว งงชิบหาย แถมไอ้ตอนสุดท้ายน่ะ คิดว่าคนสร้างตั้งใจจะทำให้ดูเป็นการหักมุม แต่ผมว่า แบบนี้ มัน &#8220;ขาดมุม&#8221; แล้วล่ะครับลูกพี่ หักมุมเกิ๊นนนนน T__T </p>
<p>รู้สึกเสียดายเวลา 2 ชั่วโมงในชีวิตจริงๆ ดูเสร็จเสียพลังงาน กับการพยายามวิเคราะห์ Logic ของคนเขียนบท ทั้งที่มันคงไม่ได้คิดอะไรเลย แค่นึกไรออกเอามายำเล่นๆ หนุกๆ หนังแบบนี้มันดูถูกภูมิปัญญาชาวบ้านจริงๆ -*- เซ็งว่ะ เอาไปเลยรางวัล &#8220;ภาพยนตร์ยอดแย่ที่สุดในสามโลก&#8221; </p>
<p>ปล.ใครยังไม่ดูก็ขอโทษด้วย ไม่ได้ตังใจ แต่มันเหลือทนจริง</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/09/27/jquerytips-pr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery’s selectors Part 2</title>
		<link>http://www.jquerytips.com/2008/09/19/jquery%e2%80%99s-selectors-part-2/</link>
		<comments>http://www.jquerytips.com/2008/09/19/jquery%e2%80%99s-selectors-part-2/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 18:51:53 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[Add new tag]]></category>

		<category><![CDATA[selectors]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=134</guid>
		<description><![CDATA[เอาละ มาแล้วต่อๆ ก่อนที่จะไม่มีอารมณ์เขียน พักนี้มัวเสียเวลาไปศึกษา เรื่องนู้นเรื่องนี้ จนไม่ค่อยได้มาอัพเดทอะไรเท่าไหร่ วันนี้ชิลด์ ชิลด์ เลยมาเขียนต่อ
ครั้งที่แล้วค้างกันไว้ถึง Basic Filter วันนี้มาต่อกันเลยละกัน 
select อีกแบบนึงที่คิดว่า คงได้ใช้บ่อยๆ แน่ๆ ก็คือชุดของ..
Basic Filter:
:first 
ตัวนี้คงไม่ต้องอธิบายอะไรมาก เพราะชื่อของมันก็บ่งบอกอยู่แล้ว ว่า first หมายถึงการเรียก element แรกนั่นเองซึ่งกันใช้ก็ไม่ยากอะไร 
สมมุติว่าผมมีชุด el ดังนี้



&#60;ul&#62;



&#60;li&#62;data 1&#60;/li&#62;



&#60;li&#62;data 2&#60;/li&#62;



&#60;li&#62;data 3&#60;/li&#62;



&#60;/ul&#62;



ผมต้องการ el แรกก็จะเขียนแค่



var first = $(&#8217;ul &#62; li:first&#8217;).text();



alert( first );



output ที่จะออกมาก็ต้องเป็น data 1 ซึ่งเป็น element แรก ของชุดนี้ ง่ายดีมั้ยล่ะ ต่อๆ ตัวต่อไปกัน เริ่มง่วงแล้ว ขอไปเร็วๆ เลยนะ
:last
อันนี้คงไม่ต้องไปอธิบาย อะไรอีก ก็เหมือยกับตัวข้างบนแหละ [...]]]></description>
			<content:encoded><![CDATA[<p>เอาละ มาแล้วต่อๆ ก่อนที่จะไม่มีอารมณ์เขียน พักนี้มัวเสียเวลาไปศึกษา เรื่องนู้นเรื่องนี้ จนไม่ค่อยได้มาอัพเดทอะไรเท่าไหร่ วันนี้ชิลด์ ชิลด์ เลยมาเขียนต่อ</p>
<p>ครั้งที่แล้วค้างกันไว้ถึง Basic Filter วันนี้มาต่อกันเลยละกัน <span id="more-134"></span></p>
<p>select อีกแบบนึงที่คิดว่า คงได้ใช้บ่อยๆ แน่ๆ ก็คือชุดของ..</p>
<p><strong>Basic Filter:</strong><br />
<strong>:first </strong><br />
ตัวนี้คงไม่ต้องอธิบายอะไรมาก เพราะชื่อของมันก็บ่งบอกอยู่แล้ว ว่า first หมายถึงการเรียก element แรกนั่นเองซึ่งกันใช้ก็ไม่ยากอะไร </p>
<p>สมมุติว่าผมมีชุด el ดังนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;ul&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;li&gt;data 1&lt;/li&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;li&gt;data 2&lt;/li&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;li&gt;data 3&lt;/li&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/ul&gt;</div>
</li>
</ol>
</div>
<p>ผมต้องการ el แรกก็จะเขียนแค่</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">var first = $(&#8217;ul &gt; li:first&#8217;).text();
</div>
</li>
<li class="li1">
<div class="de1">alert( first );</div>
</li>
</ol>
</div>
<p>output ที่จะออกมาก็ต้องเป็น <em>data 1</em> ซึ่งเป็น element แรก ของชุดนี้ ง่ายดีมั้ยล่ะ ต่อๆ ตัวต่อไปกัน เริ่มง่วงแล้ว ขอไปเร็วๆ เลยนะ</p>
<p><strong>:last</strong><br />
อันนี้คงไม่ต้องไปอธิบาย อะไรอีก ก็เหมือยกับตัวข้างบนแหละ แต่ให้ค่า สุดท้าย แทน ถ้าจะ get ค่าออกจาก ชุด elements ตามด้านบน ก็จะได้ค่า <em>data 3</em> แน่นอน</p>
<p><strong>:not</strong><br />
ตัวนี้เป็น filter ที่ค่อนข้างใช้บ่อยอยู่เหมือนกัน คือระบุค่าที่จะไม่เอาไปเลย เช่น ผมมี input แบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;div id=&quot;xx&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;checkbox&quot; name=&quot;tee[]&quot; value=&quot;1&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;checkbox&quot; name=&quot;tee[]&quot; value=&quot;2&quot; checked /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;checkbox&quot; name=&quot;tee[]&quot; value=&quot;3&quot; /&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>ทีนี้อยากให้สี bg ของ ตัวที่ไม่เช็ค มันเปลี่ยน ก็จะเขียนแบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;[@name=&quot;tee[]&quot;]:not(:checked)).css(&#8217;background&#8217;, &#8216;#000&#8242;);</div>
</li>
</ol>
</div>
<p>** การใช้ selector แบบ attribute ตามตัวอย่างข้างบน เดี๋ยวจะอธิบายใน ภาค 3 อีกทีนะ ใจเย็น</p>
<p>ต่อจากข้างล่าง ถ้าทำตามข้างบนได้แล้วคงไม่ต้องเพิ่ง ตัวอย่างเท่าไหร่ ตอนนี้ก็ดึกมากแล้ว เอาเป็นว่า จะไม่เขียนตัว อย่างแต่จะอธิบายว่า แต่ละตัวให้ค่าอะไรบ้างแทนละกัน ^^</p>
<p><strong>:even</strong><br />
จะ select elements ที่เป็นลำดับ ค่าคี่ เช่น 1, 3, 5 </p>
<p><strong>:odd</strong><br />
จะ select elements ที่เป็นลำดับ ค่าคู่ เช่น 2, 4, 6</p>
<p><strong>:eq</strong><br />
ใช้สำหรับ get element ในลำดับที่แน่นอน โดยเริ่มตั้งแต่ 0 = first element เช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;li:eq(0)&#8217;)</div>
</li>
</ol>
</div>
<p><strong>:gt</strong><br />
ตัวนี้คือ greater than นั่นเอง โดยจะ ให้ค่าทั้งหมดที่มากกว่า index ที่เราระบุ (index เริ่มที่ 0 นะคร๊าบบบ)</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;li:gt(0)&#8217;)</div>
</li>
</ol>
</div>
<p>แบบนี้จะหมายถึงเอาทุกตัวที่มี index ของ element ที่มากกว่า 0 เช่น ตำแหน่งที่ 2 3 4 อะไรก็ว่าไป</p>
<p><strong>:lt</strong><br />
ตัวนี้ตรงข้ามกัยตัวข้างบน คือเอาค่าที่น้อยกว่าที่ระบุไป </p>
<p><strong>:header</strong><br />
ไอ้นี่ไม่ค่อยได้ใช้บ่อยนัก คือจะเอาค่า ที่เป็น header เช่นมี html</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;h1&gt;&lt;/h1&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;span&gt;xxx&lt;/span&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>จะเปลี่ยนสีมันเป็นสีอื่นๆ </p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;:header&#8217;).css(&#8217;color&#8217;, &#8216;red&#8217;);</div>
</li>
</ol>
</div>
<p><strong>:animate</strong><br />
ตัวนี้จะจัดการกับค่า element ที่กำลังถูก animate อยู่ อธิบายยากเหลือเกิน ลองดูตัวอย่างของ <a href="http://docs.jquery.com/Selectors/animated">jQuery.com#animate_filter</a> กันเองดีกว่า</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/09/19/jquery%e2%80%99s-selectors-part-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery&#8217;s selectors Part 1</title>
		<link>http://www.jquerytips.com/2008/09/11/jquerys-selectors-part-1/</link>
		<comments>http://www.jquerytips.com/2008/09/11/jquerys-selectors-part-1/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 17:00:09 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
		
		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[selectors]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/?p=130</guid>
		<description><![CDATA[มีหลายคนเริ่มบ่น ว่าทำไมผม พูดแต่เรื่องอะไรที่เข้าใจยาก อืมม์ คงผิดที่ผมเองแหละ ที่ไม่ได้ ปูพื้นให้มากมายนัก เอาเป็นว่า 4-5 บทความต่อไปนี้ ผมจะกลับมาพูดเรื่อง Basic ที่มัน Simple Simple สุดๆ กันก่อนดีกว่า เพื่อที่จะได้เป็นแนวทางสำหรับ คนที่เพิ่งจะเริ่ม และเป็นการทบทวนความรู้ของตัวเองไปใน ตัว นั้นขอลอก จาก manual jQuery มาแปลไทยภาษาชาวบ้านๆ กันเลยละกัน 555+
Selectors สำหรับตัวผมเองแล้วคิดว่านี่แหละ คือหัวใจที่ทำให้ผมตัดสินใจเลือกที่จะใช้ jquery เป็น Framework ตัวหลักเลย เพราะมันมี Syntax ของ selector ที่แสนจะง่ายได้ ไม่ว่าจะหยิบจับ DOM ส่วนไหนมาใช้ก็ง่ายนิดเดียว ทำให้จัดการอะไรได้ทุกอย่าง ในหน้าเอกสาร HTML, XML มาเริ่มเข้าเรื่องกันเลยนะ
Basics:
#id
ตัวนี้ไม่มี อะไรยากครับ เป็นการเรียก id ของหน้าเอกสาร ซึ่งเหมือนกับคำสั่ง document.getElementById(&#8217;xxx&#8217;) นั่นแหละ แต่พอมาอยู่ในรูปแบบ [...]]]></description>
			<content:encoded><![CDATA[<p>มีหลายคนเริ่มบ่น ว่าทำไมผม พูดแต่เรื่องอะไรที่เข้าใจยาก อืมม์ คงผิดที่ผมเองแหละ ที่ไม่ได้ ปูพื้นให้มากมายนัก เอาเป็นว่า 4-5 บทความต่อไปนี้ ผมจะกลับมาพูดเรื่อง Basic ที่มัน Simple Simple สุดๆ กันก่อนดีกว่า เพื่อที่จะได้เป็นแนวทางสำหรับ คนที่เพิ่งจะเริ่ม และเป็นการทบทวนความรู้ของตัวเองไปใน ตัว นั้นขอลอก จาก manual jQuery มาแปลไทยภาษาชาวบ้านๆ กันเลยละกัน 555+<span id="more-130"></span></p>
<p><strong>Selectors</strong> สำหรับตัวผมเองแล้วคิดว่านี่แหละ คือหัวใจที่ทำให้ผมตัดสินใจเลือกที่จะใช้ jquery เป็น Framework ตัวหลักเลย เพราะมันมี Syntax ของ selector ที่แสนจะง่ายได้ ไม่ว่าจะหยิบจับ DOM ส่วนไหนมาใช้ก็ง่ายนิดเดียว ทำให้จัดการอะไรได้ทุกอย่าง ในหน้าเอกสาร HTML, XML มาเริ่มเข้าเรื่องกันเลยนะ</p>
<p><strong>Basics:</strong><br />
<a href="http://docs.jquery.com/Selectors/id#id">#id</a><br />
ตัวนี้ไม่มี อะไรยากครับ เป็นการเรียก id ของหน้าเอกสาร ซึ่งเหมือนกับคำสั่ง document.getElementById(&#8217;xxx&#8217;) นั่นแหละ แต่พอมาอยู่ในรูปแบบ jQuery ทำให้เราเรียกง่ายๆ แค่</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;#idName&#8217;)</div>
</li>
</ol>
</div>
<p><a href="http://docs.jquery.com/Selectors/element#element">element</a><br />
แบบนี้คือการเรียกเจาะจง element ของ DOM ครับเช่น ผมจะเรียก Body ทั้งหมด</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;body&#8217;)</div>
</li>
</ol>
</div>
<p>หรือ</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;div&#8217;)</div>
</li>
</ol>
</div>
<p><a href="http://docs.jquery.com/Selectors/class#class">.class</a><br />
แบบนี้คือการระบุ ClassName ครับ เช่นเอกสาร html เรามี</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;div class=&quot;xxx&quot;&gt;Something&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>เราก็จะเรียก</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;.xxx&#8217;)</div>
</li>
</ol>
</div>
<p><a href="http://docs.jquery.com/Selectors/all">*</a><br />
อันนี้คงไม่ได้ใช้บ่อยนัก คือ มันจะจับทุก elements เลย</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">(&#8217;*')</div>
</li>
</ol>
</div>
<p><a href="http://docs.jquery.com/Selectors/multiple#selector1selector2selectorN">selector1, selector2, selectorN</a><br />
แบบนี้เป็นการเรียกรวม elements หลายตัว หลายๆ แบบ mix กันตามใจชอบเช่น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;input, .className, #myID&#8217;)</div>
</li>
</ol>
</div>
<p>ซึ่งทุกตัวที่เรียกจะ ถูกทำงานใน คำสั่งที่เราจะเขียน </p>
<p><strong>Hierarchy:</strong><br />
<a href="http://docs.jquery.com/Selectors/descendant#ancestordescendant">ancestor descendant</a><br />
การเรียกแบบไล่ไปตาม node จะมีรูปแบบการเขียนคือ<br />
<code>$('#parent p')</code><br />
แบบนี้จะเป็นการหา p ทั้งหมดที่มี parent แม่เป็น #parent เช่นเอกสาร html</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;ul id=&quot;parent&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;li&gt;&lt;p&gt;xxx&lt;/p&gt;&lt;/li&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;li&gt;&lt;p&gt;xxx&lt;/p&gt;&lt;/li&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/ul&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>ซึ่งสังเกตุได้ ตัว selector แบบนี้จะมุ่งหาตัว p โดยที่ไม่สนใจว่าจะมี element > li มาคั่นอยู่</p>
<p><a href="http://docs.jquery.com/Selectors/child#parentchild">parent > child</a><br />
การหาแบบนี้จะเป็นการรุบุ child ไล่ไปตาม node ที่แท้จริง เช่นผมมี html อยู่แบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;ul id=&quot;parent&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;li&gt;&lt;p&gt;xxx&lt;/p&gt;&lt;/li&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;li&gt;&lt;p&gt;xxx&lt;/p&gt;&lt;/li&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/ul&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>ถ้าผมเขียนแบบนี้ จะหาไม่เจออะไรเลย</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;#parent &gt; p&#8217;)</div>
</li>
</ol>
</div>
<p>ที่ถูกต้องตามรูปแบบ Selector แบบนี้ก้คือ</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;#parent &gt; li &gt; p&#8217;)</div>
</li>
</ol>
</div>
<p><a href="http://docs.jquery.com/Selectors/next#prevnext">prev + next</a><br />
ต่อไปเป็นการหา ในรูปแบบ หน้า และ หลังครับ คือ ตัวที่อ้างอิงไม่ได้เป็น parent เป็นเพียงแค่ตัวก่อนหน้ามันเท่านั้น</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;form&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;input&#8230;.. /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;div&gt;&lt;/div&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/form&gt;&lt;/code&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;pre lang=&quot;html&quot;&gt;$(&#8217;input + div&#8217;)</div>
</li>
</ol>
</div>
<p>สังเกตุดูได้ครับ ว่าตัวที่เอามาอิง เป็นเพียงแค่ตัวที่อยู่ก่อนหน้ามัน คือ input มันเป็น element ที่อยู่หน้า div เท่านั้นเองไม่ได้เป็น parent แต่อย่างใด</p>
<p><a href="http://docs.jquery.com/Selectors/siblings#prevsiblings">prev ~ siblings</a><br />
ตัวนี้อธิบายยากแฮะ -*- มันก็ คือการหา child ที่อยู่ในราก เดียวกับมัน เพียงแต่ว่าจะอยู่หลังจาก ตัวที่เราอ้างอิง เช่นผมมี html แบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;p&gt;&lt;/p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;p id=&quot;prev&quot;&gt;&lt;/p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;p&gt;&lt;/p&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &lt;p&gt;&lt;/p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>ถ้าผมเขียน selector แบบนี้</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$(&#8217;#prev ~ p&#8217;)</div>
</li>
</ol>
</div>
<p>สิ่งที่ผมจะได้ออกมาก็คือ p สองชุดหลังเท่านั้น เพราะว่า p สองชุดหลัง อยู่ในรากเดียวกับ p ที่ระบุ id=prev ซึ่งที่ตัวบน ไม่ได้มาด้วยเพราะว่า การระบุแบบนี้จะเรียกเฉพาะ ตัวที่อยู่หลัง element ที่เราอ้างอิงเท่านั้น</p>
<p>เอาล่ะ วันนี้พอแค่นี้แหละ ขอบอกไว้ก่อนครับ ผมจะไม่พล่ามไปจนจบ manual ของ selectors ทั้งหมดของ jQuery หรอกนะ เพราะมันเยอะอ่ะ แต่จะบอกส่วนที่สำคัญๆ และเป็นพื้นให้ศึกษาตัว ต่อไปได้ไม่ยาก ถ้าใครอยากจะได้ทั้งหมดก็นี่เลยครับ</p>
<p><a href="http://docs.jquery.com/Selectors">http://docs.jquery.com/Selectors</a></p>
<p>คลิกอ่านเอาให้หมดทำความเข้าใจซะ แล้วคราวหน้าผมจะมาต่อเรื่อง selector ภาค 2 แล้วก็จะไปต่อ บทอื่นเลยละกัน วันนี้ไปนอนแล้ว หมดแรง</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2008/09/11/jquerys-selectors-part-1/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
