<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Austin Liu's Fashion</title><subtitle type="text">&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp人在20岁以意志力著称，在30岁以智慧取胜，在40岁则靠的是理智的判断。一个人只有时刻保持幸福快乐的感觉，才会使自己更加热爱生命，热爱生活。只有快乐，愉快的心情，才是创造力和人生动力的源泉；只有不断自己创造快乐，与自己快乐相处的人，才能远离痛苦与烦恼，才能拥有快乐的人生。</subtitle><id>http://feed.cnblogs.com/blog/u/48428/rss</id><updated>2012-05-19T10:08:16Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/48428/rss"/><entry><id>http://www.cnblogs.com/lzhdim/archive/2012/04/28/2474943.html</id><title type="text">50个必备的实用jQuery代码段</title><summary type="text">1. 如何修改jQuery默认编码（例如默认UTF-8改成改GB2312）：$.ajaxSetup({ ajaxSettings:{ contentType:"application/x-www-form-urlencoded;chartset=GB2312"} });2. 解决jQuery, prototype共存，$全局变量冲突问题：&lt;script src="prototype.js"&gt;&lt;/script&gt; &lt;script src="http://blogbeta.blueidea.com/jquery.js&amp;q</summary><published>2012-04-28T04:31:00Z</published><updated>2012-04-28T04:31:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2012/04/28/2474943.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2012/04/28/2474943.html"/><content type="html">&lt;p&gt;1. 如何修改jQuery默认编码（例如默认UTF-8改成改GB2312）：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$.ajaxSetup({ ajaxSettings:{ contentType:"application/x-www-form-urlencoded;chartset=GB2312"}  });&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;2. 解决jQuery, prototype共存，$全局变量冲突问题：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;script src&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;prototype.js&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;script&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;script src&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;http://blogbeta.blueidea.com/jquery.js&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;script&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;script type&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;text/javascript&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;       jQuery.noConflict();&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;script&amp;gt; &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #ff0000; "&gt;注意：一定要先引入prototype.js 再引入jquery.js，先后顺序不可错。&lt;/span&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;3. jQuery 判断元素上是否绑定了事件&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;jQuery event封装支持判断元素上是否绑定了事件，此方法只适用于jQuery绑定的事件&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $events &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#foo&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).data(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;events&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;( $events &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $events[&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;click&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;] ){ &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;your code&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;} &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;4. 如何使用jQuery来切换样式表&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;找出你希望切换的媒体类型（media-type），然后把href设置成新的样式表。&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;link[media=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;screen&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;]&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;href&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;alternative.css&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;5. 如何限制选择范围（基于优化目的）：&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;尽可能使用标签名来作为类名的前缀，&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;这样jQuery就不需要花费更多的时间来搜索&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;你想要的元素。还要记住的一点是，&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;针对于你的页面上的元素的操作越具体化，&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;就越能降低执行和搜索的时间。&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; in_stock &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#shopping_cart_items input.is_in_stock&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ul id&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;shopping_cart_items&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input type&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;radio&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; value&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;Item-X&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; name&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;item&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; class&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;is_in_stock&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt; Item X&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input type&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;radio&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; value&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;Item-Y&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; name&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;item&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; class&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;3-5_days&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt; Item Y&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input type&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;radio&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; value&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;Item-Z&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; name&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;item&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; class&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;unknown&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt; Item Z&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ul&amp;gt;&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;6. 如何正确地使用toggleClass：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;切换（toggle）类允许你根据某个类的&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;是否存在来添加或是删除该类。&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;这种情况下有些开发者使用：&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;a.hasClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blueButton&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;?&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; a.removeClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blueButton&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) : a.addClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blueButton&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;toggleClass允许你使用下面的语句来很容易地做到这一点&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;a.toggleClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blueButton&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;7. 如何设置IE特有的功能：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ($.browser.msie) {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; Internet Explorer就是个虐待狂&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;}&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;8. 如何使用jQuery来代替一个元素：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#thatdiv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).replaceWith(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;fnuh&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;9. 如何验证某个元素是否为空：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 方法一&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (! $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#keks&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).html()) {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;什么都没有找到;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;}&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 方法二&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ($(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#keks&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).is(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;:empty&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;)) {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;什么都没有找到;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;}&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;10. 如何从一个未排序的集合中找出某个元素的索引号&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ul &amp;gt; li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).click(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; () {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; index &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).prevAll().length; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;prevAll([expr]): 查找当前元素之前所有的同辈元素&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;});&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;11. 如何把函数绑定到事件上：&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;方法一&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#foo&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).click(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(event) {  alert(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;User clicked on "foo."&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  }); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;方法二, 支持动态传参&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#foo&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).bind(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;click&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, {test1:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;abc&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, test2:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;123&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;}, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(event) {  alert(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;User clicked on "foo."&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; event.data.test1 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; event.data.test2 );  }); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;12. 如何追加或是添加html到元素中：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#lal&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).append(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;sometext&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;13. 在创建元素时，如何使用对象字面量（literal）来定义属性&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; e &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;""&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, { href: &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, class: &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;a-class another-class&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, title: &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;...&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; }); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;14. 如何使用多个属性来进行过滤&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;在使用许多相类似的有着不同类型的input元素时， &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;这种基于精确度的方法很有用 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; elements &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#someid input[type=sometype][value=somevalue]&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).get(); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;15. 如何使用jQuery来预加载图像：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;jQuery.preloadImages &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() { &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;for&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; i &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;; i &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; arguments.length; i&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;++&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) {  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;img /&amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;src&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, arguments[i]);  } }; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;用法 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$.preloadImages(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;image1.gif&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/path/to/image2.png&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;some/image3.jpg&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px 5px 0px 0px; margin: 0px; line-height: 1.5; "&gt;&lt;a href="http://www.cnblogs.com/gumutianqi/archive/2011/10/17/2215186.html" rel="nofollow" style="padding: 0px; margin: 0px; color: #4466bb; outline: 0px; "&gt;&lt;img src="http://common.cnblogs.com/images/copycode.gif" alt="复制代码" style="padding: 0px; margin: 0px; border: 0px; max-width: 640px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;16. 如何为任何与选择器相匹配的元素设置事件处理程序：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;button.someClass&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).live(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;click&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, someFunction); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;注意，在jQuery 1.4.2中，delegate和undelegate选项 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;被引入代替live，因为它们提供了更好的上下文支持 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;例如，就table来说，以前你会用&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;table&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;td&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).live(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;hover&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).toggleClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;hover&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  });  }); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;现在用 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;table&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).delegate(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;td&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;hover&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).toggleClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;hover&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  }); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;17. 如何找到一个已经被选中的option元素：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#someElement&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).find(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;option:selected&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;18. 如何隐藏一个包含了某个值文本的元素：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;p.value:contains('thetextvalue')&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).hide(); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;19. 如何创建嵌套的过滤器：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;允许你减少集合中的匹配元素的过滤器，&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;只剩下那些与给定的选择器匹配的部分。在这种情况下，&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;查询删除了任何没（:not）有（:has）&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;包含class为&amp;#8220;selected&amp;#8221;（.selected）的子节点。&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.filter(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;:not(:has(.selected))&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;)&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;20. 如何检测各种浏览器：&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;检测Safari (if( $.browser.safari)),&amp;nbsp;&amp;nbsp;&lt;br style="padding: 0px; margin: 0px; " /&gt;检测IE6及之后版本 (if ($.browser.msie &amp;amp;&amp;amp; $.browser.version &amp;gt; 6 )),&amp;nbsp;&amp;nbsp;&lt;br style="padding: 0px; margin: 0px; " /&gt;检测IE6及之前版本 (if ($.browser.msie &amp;amp;&amp;amp; $.browser.version &amp;lt;= 6 )),&amp;nbsp;&amp;nbsp;&lt;br style="padding: 0px; margin: 0px; " /&gt;检测FireFox 2及之后版本 (if ($.browser.mozilla &amp;amp;&amp;amp; $.browser.version &amp;gt;= '1.8' ))&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;21. 任何使用has()来检查某个元素是否包含某个类或是元素：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;jQuery 1.4.*包含了对这一has方法的支持。&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;该方法找出某个元素是否包含了其他另一个元素类或是其他任何的你正在查找并要在其之上进行操作的东东。&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).has(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.email&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).addClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;email_icon&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;22. 如何禁用右键单击上下文菜单：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(document).bind(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;contextmenu&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(e){  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;  }); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;23. 如何定义一个定制的选择器&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$.expr[&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;].mycustomselector &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(element, index, meta, stack){ &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; element- 一个DOM元素 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; index &amp;#8211; 栈中的当前循环索引 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; meta &amp;#8211; 有关选择器的元数据 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; stack &amp;#8211; 要循环的所有元素的栈 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 如果包含了当前元素就返回true &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 如果不包含当前元素就返回false }; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; //&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 定制选择器的用法： &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.someClasses:test&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).doSomething(); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;24. 如何检查某个元素是否存在&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ($(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#someDiv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).length) { &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;万岁！！！它存在&amp;#8230;&amp;#8230; &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;} &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;25. 如何使用jQuery来检测右键和左键的鼠标单击两种情况：&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#someelement&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).live(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;click&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(e) {      &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;( (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$.browser.msie &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; e.button &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ($.browser.msie &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; e.button &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) ) {          alert(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;Left Mouse Button Clicked&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);      } &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;else&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(e.button &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;2&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) {          alert(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;Right Mouse Button Clicked&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);      } });&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;26. 如何替换串中的词&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; el &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#id&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  el.html(el.html().replace(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;word&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ig, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;''&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;)); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;27. 如何在一段时间之后自动隐藏或关闭元素（支持1.4版本）：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;这是1.3.2中我们使用setTimeout来实现的方式 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;setTimeout(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.mydiv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).hide(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blind&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, {}, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;500&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;)  }, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;5000&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;而这是在1.4中可以使用delay()这一功能来实现的方式（这很像是休眠） &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.mydiv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).delay(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;5000&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).hide(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blind&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, {}, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;500&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;28. 如何把已创建的元素动态地添加到DOM中：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; newDiv &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  newDiv.attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;id&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;myNewDiv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).appendTo(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;body&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;29. 如何限制&amp;#8220;Text-Area&amp;#8221;域中的字符的个数：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;jQuery.fn.maxLength &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(max){      &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){         &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; type &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.tagName.toLowerCase();          &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; inputType &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.type&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;?&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.type.toLowerCase() : &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;null&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;          &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(type &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; inputType &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;text&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; inputType &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;password&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;){              &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;Apply the standard maxLength &lt;/span&gt;  &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.maxLength &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; max;          } &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;else&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(type &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;textarea&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.onkeypress &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(e){                  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ob &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; e &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; event;                  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; keyCode &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ob.keyCode;                  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; hasSelection &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; document.selection&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;?&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; document.selection.createRange().text.length &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; : &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.selectionStart &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.selectionEnd;                  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.value.length &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; max &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (keyCode &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;50&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; keyCode &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;32&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; keyCode &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; keyCode &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;13&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ob.ctrlKey &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ob.altKey &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;hasSelection);              };              &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.onkeyup &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){                  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.value.length &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; max){                      &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.value &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.value.substring(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;,max);                  }              };         }     }); };&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;用法 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#mytextarea&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).maxLength(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;500&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;30. 如何jQuery注册和禁用jQuery全局事件&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;jQuery注册ajax全局事件ajaxStart，ajaxStop：&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(document).ajaxStart(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){     $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#background,#progressBar&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).show(); }).ajaxStop(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){     $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#background,#progressBar&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).hide(); });&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;ajax请求禁用全局事件：$.ajax() 有个参数global (默认: true) 是否触发全局 AJAX 事件.设置为 false 将不会触发全局 AJAX 事件，如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;31. 如何在jQuery中克隆一个元素：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; cloned &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#somediv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).clone(); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;32. 在jQuery中如何测试某个元素是否可见&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;($(element).is(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;:visible&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;)) { &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;该元素是可见的 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;} &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;33. 如何把一个元素放在屏幕的中心位置：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;jQuery.fn.center &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; () {  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){ $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).css({ position:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;absolute&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, top, ( $(window).height() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;-&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.height() ) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;2&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(window).scrollTop() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;px&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;,  left, ( $(window).width() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;-&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.width() ) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;2&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(window).scrollLeft() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;px&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; }); }); }&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;这样来使用上面的函数：  &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(element).center(); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;34. 如何把有着某个特定名称的所有元素的值都放到一个数组中：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; arrInputValues &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; Array();  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input[name='xxx']&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  arrInputValues.push($(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).val()); }); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;35. 如何从元素中除去HTML&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;($) {  $.fn.stripHtml &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; regexp &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;("[^"]*"|'[^']*'|[^'"&amp;gt;])*&amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;gi;  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).html( $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).html().replace(regexp,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;''&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) );  }); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  }  })(jQuery); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;用法： &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;p&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).stripHtml(); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;36. 如何使用closest来取得父元素：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#searchBox&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).closest(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;div&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;37. 如何使用Firebug和Firefox来记录jQuery事件日志：&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 允许链式日志记录&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;jQuery.log &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; jQuery.fn.log &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (msg) { &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (console){  console.log(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;%s: %o&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, msg, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  }&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;  };&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 用法： &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#someDiv&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).hide().log(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;div hidden&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).addClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;someClass&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;38. 如何强制在弹出窗口中打开链接：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;a.popup&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).live(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;click&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; newwindow &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; window.open($(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;href&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;),&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;''&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;height=200,width=150&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (window.focus) {  newwindow.focus();  }  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;; }); &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;39. 如何强制在新的选项卡中打开链接：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;a.newTab&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).live(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;click&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; newwindow&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;window.open(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.href);  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).target &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;_blank&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;  }); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;40. 在jQuery中如何使用.siblings()来选择同辈元素&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 不这样做 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#nav li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).click(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#nav li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).removeClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;active&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).addClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;active&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  });&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;替代做法是 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#nav li&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).click(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).addClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;active&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).siblings().removeClass(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;active&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  });&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;41. 如何切换页面上的所有复选框：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; tog &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; 或者为true，如果它们在加载时为被选中状态的话 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;a&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).click(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input[type=checkbox]&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;checked&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;tog);  tog &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;tog; });&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;42. 如何基于一些输入文本来过滤一个元素列表：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;如果元素的值和输入的文本相匹配的话,该元素将被返回 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.someClass&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).filter(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;value&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input#someId&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).val();  }) &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;43. 如何获得鼠标垫光标位置x和y&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(document).ready(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  $(document).mousemove(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(e){  $(&amp;#8217;#XY&amp;#8217;).html(&amp;#8221;X Axis : &amp;#8221; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; e.pageX &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; &amp;#8221; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;|&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; Y Axis &amp;#8221; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; e.pageY);  }); });&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;44. 如何扩展String对象的方法&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$.extend(String.prototype, {         isPositiveInteger:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;^[1-9]\d*$&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));         },         isInteger:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;^\d+$&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));         },         isNumber: &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(value, element) {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));         },         trim:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.replace(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(^\s*)|(\s*$)|\r|\n&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;g, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;""&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);         },         trans:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.replace(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;g, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).replace(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;g,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).replace(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;quot;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;g, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);         },         replaceAll:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(os, ns) {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.replace(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(os,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;gm&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;),ns);         },&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;         skipChar:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(ch) {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;||&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.length&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;===&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;''&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;}             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.charAt(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;)&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;===&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;ch) {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.substring(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).skipChar(ch);}             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;         },         isValidPwd:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;^([_]|[a-zA-Z0-9]){6,32}$&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));          },         isValidMail:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.trim()));         },         isSpaces:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;for&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; i&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;0&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;; i&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.length; i&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) {                 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ch &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.charAt(i);                 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (ch&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ch&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;\n&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ch&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;\t&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; ch&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;\r&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) {&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;false&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;}             }             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;true&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;         },         isPhone:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(^([0-9]{3,4}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0-9]{3,4}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));         },         isUrl:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; RegExp(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;^[a-zA-z]+:\/\/([a-zA-Z0-9\-\.]+)([-\w .\/?%&amp;amp;=:]*)$&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).test(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));         },         isExternalUrl:&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.isUrl() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.indexOf(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;://&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;document.domain) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;==&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;-&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;;         }     });&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;45. 如何规范化写jQuery插件：&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;($){     $.fn.extend({         pluginOne: &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){                 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; my code&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;            });         },         pluginTwo: &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){             &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(){                 &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; my code&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;            });         }     }); })(jQuery);&lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;46. 如何检查图像是否已经被完全加载进来&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;#theImage&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).attr(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;src&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;image.jpg&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).load(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  alert(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;This Image Has Been Loaded&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  }); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;47. 如何使用jQuery来为事件指定命名空间：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;事件可以这样绑定命名空间 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).bind(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;blur.validation&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(e){ &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt; ... &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;}); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;data方法也接受命名空间 &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;input&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).data(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;validation.isValid&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;true&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;); &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;48. 如何检查cookie是否启用&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; dt &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; Date();  dt.setSeconds(dt.getSeconds() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;60&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;);  document.cookie &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;cookietest=1; expires=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; dt.toGMTString(); &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; cookiesEnabled &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; document.cookie.indexOf(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;cookietest=&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;"&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;) &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;-&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;1&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;!&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;cookiesEnabled) {  &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;//&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #008000; "&gt;没有启用cookie &lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;} &lt;/span&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;49. 如何让cookie过期：&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; date &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; Date();  date.setTime(date.getTime() &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;+&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; (x &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;*&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;60&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;*&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;1000&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;));  $.cookie(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;example&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;foo&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;, { expires: date });&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;p&gt;&lt;br style="padding: 0px; margin: 0px; " /&gt;50. 如何使用一个可点击的链接来替换页面中任何的URL&lt;/p&gt;&lt;div style="padding: 0px; margin: 0px; "&gt;&lt;div style="padding: 0px; margin: 0px; font-family: 微软雅黑, Verdana, sans-serif, 宋体; line-height: 24px; text-align: left; background-color: #ffffff; "&gt;&lt;/div&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;$.fn.replaceUrl &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() { &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt; regexp &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;=&lt;/span&gt; &lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&amp;amp;%@!\-\/]))?)&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;/&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;gi; &lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;return this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;.each(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;() {  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).html(  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; color: #0000ff; "&gt;this&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).html().replace(regexp,&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;&amp;lt;a href="$1"&amp;gt;$1&amp;lt;/a&amp;gt;') );  }); }  //用法　  $(&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;p&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;'&lt;/span&gt;&lt;span style="padding: 0px; margin: 0px; line-height: 1.5; "&gt;).replaceUrl(); &lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/2474943.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2012/04/28/2474943.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2012/04/07/2435936.html</id><title type="text">金庸群侠传攻略</title><summary type="text">金庸群侠传是一款DOS游戏，出来已经很多年了，这次又回顾了一次，特将攻略写出来给大家分享，还有修改器和优化存档下载哦。游戏修改器、地图和优化存档下载：《金庸群侠传》修改器和优化存档在windows下使用DOSBOX来模拟运行DOS游戏（安装DOSBOX后将金庸群侠传游戏程序Z.exe拖拉到DOSBOX快捷方式即可）。在屋内（357，235）取了几样东西，按软体娃娃的指点找到河洛客栈（358，229）的伙计韦小宝，塞点银子给他，得知应该去找南贤。走进客栈，从一群黑衣人处得知客栈前不远处即是江南梅庄和姑苏慕容燕子坞，还知道了福威镖局近来出了点事。出客栈向南走，来到南贤居（388，325）。将难处告</summary><published>2012-04-07T06:04:00Z</published><updated>2012-04-07T06:04:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2012/04/07/2435936.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2012/04/07/2435936.html"/><content type="html">&lt;p&gt;金庸群侠传是一款DOS游戏，出来已经很多年了，这次又回顾了一次，特将攻略写出来给大家分享，还有修改器和优化存档下载哦。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;游戏修改器、地图和优化存档下载：&amp;nbsp;&lt;a title="《金庸群侠传》修改器和优化存档" href="http://files.cnblogs.com/lzhdim/%E3%80%8A%E9%87%91%E5%BA%B8%E7%BE%A4%E4%BE%A0%E4%BC%A0%E3%80%8B%E4%BF%AE%E6%94%B9%E5%99%A8%E5%92%8C%E4%BC%98%E5%8C%96%E5%AD%98%E6%A1%A3.rar"&gt;《金庸群侠传》修改器和优化存档&lt;/a&gt;&lt;/p&gt;&lt;p&gt;在windows下使用DOSBOX来模拟运行DOS游戏（安装DOSBOX后将金庸群侠传游戏程序Z.exe拖拉到DOSBOX快捷方式即可）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在屋内（357，235）取了几样东西，按软体娃娃的指点找到河洛客栈（358，229）的伙计韦小宝，塞点银子给他，得知应该去找南贤。走进客栈，从一群黑衣人处得知客栈前不远处即是江南梅庄和姑苏慕容燕子坞，还知道了福威镖局近来出了点事。出客栈向南走，来到南贤居（388，325）。将难处告知南贤，这才知道要我去找14本武功秘笈&amp;#8212;&amp;#8212;&amp;#8220;飞雪连天射白鹿，笑书神侠倚碧鸳&amp;#8221;，若能在华山论剑中争夺到武林盟主，即可通过圣堂回到现实世界。从南贤的柜中取得罗盘后，便开始这场寻找天书的江湖行。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《飞狐外传》&lt;br /&gt;去阎基居胜之（第一次会中悲酥清风，带补内力药品），从抽屉里拿到两页刀法。去胡斐居胜之，把刀法给他，让加入队伍。再去阎基居杀之得七心海棠。去药王谷找程灵素（拿入口附近的蓝花才能进），给她七心海棠得眼药解药。去苗人凤居救他，然后给解&lt;/p&gt;&lt;p&gt;药治伤。然后胡斐和他单挑，胜之得书（败了不死）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《雪山飞狐》&lt;br /&gt;从苗人凤家拿到闯王藏宝图，去大雪山山洞里打大雪怪（功力高才去打），然后用从胡斐处得到的闯王军刀开门得书及&amp;#8220;鸯刀&amp;#8221;。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《连城诀》&lt;br /&gt;到福威镖局左边最上面的小山山洞里得到唐诗三百首，到北丑居将之放到冰水盆中浸泡，得书位置。到天宁寺佛像背后得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《天龙八部》&lt;br /&gt;在高升客栈找段誉， 到无量山一游。到燕子坞，与慕容复谈，他要你找大燕国玉玺（在绝情谷抽屉里，需要坐船去，在老顽童居的左边山林中）和大燕国皇帝世袭图表（在铁掌山里的右边小径中），给他后知道书在乔峰那里。他给你两种选择拿书。想当好人，则上&lt;/p&gt;&lt;p&gt;丐帮，闯打狗阵，挑乔峰，胜后得书；想当歹人，则带他加入，到少林寺找玄慈得信给乔峰看，直接得书（不挑他）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《射雕英雄传》&lt;br /&gt;找程英加入（道德值要高），找老顽童谈话，到黑龙潭找瑛姑。然后到黑龙潭旁边的一灯居给他手帕看（打不打随你）。回黑龙潭谈话。到百花谷找老顽童谈，再回黑龙潭，知道桃花岛入口坐标。到桃花岛找郭靖，或送书（道德值高），或抢书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《白马啸西风》&lt;br /&gt;在功力高后，到沙漠废墟里的小房子里的小箱子底下的密道进入高昌迷宫，得书（要佩戴刀或剑）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《鹿鼎记》&lt;br /&gt;到神龙岛打，与岛主谈。回来到五毒教打。再回岛打败教主，得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《笑傲江湖》&lt;br /&gt;到悦来客栈找令狐冲，用银两找小二买酒给他喝，再问小二。到梅庄泳溪山行旅图（从林平之处得）从丹青生处得酒，到白驼山得翡翠杯。回来找令狐冲给之酒、杯，让加入，到华山后面山洞一走学得独孤九剑。遍访五岳打，然后再到嵩山打（只有令狐冲打）&lt;/p&gt;&lt;p&gt;。到梅庄用琴（在破庙里的右边小道入到后边墓中，用从蝴蝶谷中得到的铁锹挖得广陵散）、棋（慕容复处得呕血谱）、书（嵩山屋中得张旭率意帖）给江南四友并打败之。出来梅庄再入找黑白子，得钥匙。到屋里左边的地道入得见任我行，找到黑木令。到黑&lt;/p&gt;&lt;p&gt;木崖打败众高手，得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《书剑恩仇录》&lt;br /&gt;到回族部落找霍青桐谈。然后到金轮寺打夺回可兰经。再回部落给之，得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《神雕侠侣》&lt;br /&gt;到沙漠中小群山的山洞中，打败蛇，找到杨过谈。到绝情谷左边花卉中找到断肠草拿给杨过服下，得到蜂蜜。找老顽童给之蜂蜜，出来再入老顽童居，看蜜蜂，知道绝情谷底坐标。到绝情谷后面的谷底找到小龙女。然后回古墓的棺材里得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《侠客行》&lt;br /&gt;到沙漠中小群沙丘的山洞中得到玄冰烈火酒，到摩天崖（队伍里要有轻功高的人）找到石破天给他服下，让加入（注意队伍要不满才能加入，否则出来后到旁边的高升客栈才能找到他）。到雪山派打得善恶惩罚令。到侠客岛找众人谈话（需带石破天），然后找&lt;/p&gt;&lt;p&gt;岛主谈。得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《倚天屠龙记》&lt;br /&gt;到冰火岛拿到金毛。到昆仑仙境山洞后面给张无忌，让加入。到明教分舵打，然后到右边小屋进入地道拿乾坤大挪移。到光明顶打，得令。到冰火岛将令给谢逊看。去成昆居杀之。到冰火岛将头颅给谢逊看。回光明顶找他谈。到灵蛇岛找金花婆婆救王难姑。到&lt;/p&gt;&lt;p&gt;蝴蝶谷谈话。到灵蛇岛找金花婆婆。再回光明顶破阵。得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《碧血剑》&lt;br /&gt;华山旁金蛇秘洞取金蛇剑，到渤泥岛找袁承志。或送书，或抢（看道德值）。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;《鸳鸯刀》&lt;br /&gt;到平一指处要其加入。到田伯光处杀之得鸳刀。若已得鸯刀（拿到雪山飞狐），则到神秘岛，用刀开门，得书。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;所有书都拿到后，回家休息，桌上有武林贴。到武道大会打败众高手得到神杖。坐船到霹雳堂给孔八拉，得钥匙开右边屋子中秘道门。。进入将书按墙壁字放上。然后打败众高手（当好人道德值高则打十大恶人，当坏人则打十大正派高手），从镜子中回去，结&lt;/p&gt;&lt;p&gt;束。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;降龙十八掌 &lt;/p&gt;&lt;p&gt;取来云鹤崖（017，015）的兔肉、灵蛇岛（187，063）的獐腿肉、成昆居（019，249）的小猪耳朵、万鳄岛（432，125）的小牛腰子、星宿海（132，410）的羊羔后臀，到海边小屋（286，154）让厨子做成名菜&amp;#8220;玉笛谁家听落梅&amp;#8221;。拿着这道菜到洪七公居（169，210）给洪七公，就可学会降龙十八掌。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;两份宝物 &lt;/p&gt;&lt;p&gt;在搜寻宝物时，只要先去房间各处拿走所有宝物，再与主人交谈，然后再去搜索已被打开的宝箱，又可得到相同的一份宝物。但要注意在拿取宝物时不可与人&amp;#8220;交谈&amp;#8221;或&amp;#8220;战斗&amp;#8221;，否则密技会失效。同时第一次拿宝物属于&amp;#8220;偷窃&amp;#8221;行为，会使道德值下降。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;真武剑 &lt;/p&gt;&lt;p&gt;武当派的房后有另一件超级武器真武剑，可加攻击力20点。 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;无限物品 &lt;/p&gt;&lt;p&gt;在主人公徐小侠的家里有许多好东东，当你出家门后再进去，回发现刚才的东西还有，可以多拿几次，至于次数，是无限的！！！ &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;照明 &lt;/p&gt;&lt;p&gt;进入山洞后按k键可照明。 &lt;/p&gt;&lt;p&gt;进入任何一个有雾的山洞时，按下 Ｌ键，就可以把所有的雾都去除 &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;找同伴&lt;/p&gt;&lt;p&gt;人物&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 地点&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;条件&amp;nbsp; &lt;br /&gt;令狐冲&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;悦来客栈（221，286）&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 犁花酒，翡翠杯（白蛇山）&amp;nbsp; &lt;br /&gt;张无忌&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;昆仑仙境（022，440）&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 谢逊的金毛（冰火岛）&amp;nbsp; &lt;br /&gt;石破天&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;摩天涯 （186，338）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 玄冰碧火酒（沙漠山洞075，226）&amp;nbsp; &lt;br /&gt;杨过&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;神雕山洞（086，170）&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 断肠草（绝情谷底）&amp;nbsp; &lt;br /&gt;林平之&amp;nbsp;&amp;nbsp; &amp;nbsp;福威镖局（369，258）&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 击败青城派（185，370）&amp;nbsp; &lt;br /&gt;段誉&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;高升客栈（199，401）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;无&amp;nbsp; &lt;br /&gt;袁承志&amp;nbsp; &amp;nbsp;&amp;nbsp;渤泥潭 （277，043）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 道德值高于85&amp;nbsp; &lt;br /&gt;游坦之&amp;nbsp; &amp;nbsp;&amp;nbsp;破庙 （019，181）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;阿紫随同&amp;nbsp; &lt;br /&gt;张云&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 大轮寺 （114，297）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 道德值高于60&amp;nbsp; &lt;br /&gt;虚竹&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 龙门客栈（101，374）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;道德值高于80&amp;nbsp; &lt;br /&gt;胡斐&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 胡斐居 （086，094）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;胡家两页刀法&amp;nbsp; &lt;br /&gt;暮容复&amp;nbsp; &amp;nbsp;燕子坞 （308，197）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 玉玺，族谱（绝情谷底）（铁掌山302，343）&amp;nbsp; &lt;br /&gt;小龙女&amp;nbsp; &amp;nbsp;绝情谷底（134，259）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 杨过随同&amp;nbsp; &lt;br /&gt;阿紫&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 破庙 （019，181）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;冰蚕，道德值低于45（冰残洞022，449）&amp;nbsp; &lt;br /&gt;田伯光 &amp;nbsp; 田伯光居（385，306）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 无&amp;nbsp; &lt;br /&gt;岳老三&amp;nbsp; &amp;nbsp;万鳄潭 （432，125）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;击败他&amp;nbsp; &lt;br /&gt;蓝凤凰&amp;nbsp; &amp;nbsp;五毒教 （247，424）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;击败她&amp;nbsp; &lt;br /&gt;欧阳克 &amp;nbsp; 白蛇山 （141，433）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 击败他且身边有女人&amp;nbsp; &lt;br /&gt;王难姑 &amp;nbsp; 蝴蝶谷 （238，219）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;击败金花婆婆（灵蛇导187，036）&amp;nbsp; &lt;br /&gt;程灵素 &amp;nbsp; 药王谷 （323，318）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;七心海棠（阎基居396，374）&amp;nbsp; &lt;br /&gt;平一指&amp;nbsp;&amp;nbsp; 平一指居（215，196）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;杀死填田伯光&amp;nbsp; &lt;br /&gt;胡青牛&amp;nbsp; &amp;nbsp;蝴蝶谷 （238，219）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 救出王难姑&amp;nbsp; &lt;br /&gt;薜慕华&amp;nbsp;&amp;nbsp; 薜慕华居（192，261）&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 逍遥派戒指&amp;nbsp; &lt;br /&gt;程瑛&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 程瑛居 （295，422）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 道德值高于70&amp;nbsp; &lt;br /&gt;王语嫣&amp;nbsp;&amp;nbsp; 燕子坞 （308，197）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;暮容复随同&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/2435936.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2012/04/07/2435936.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2012/03/08/2385028.html</id><title type="text">VB程序架构模板</title><summary type="text">昨天刚整理了下以前写过的VB程序，把架构给整理出来了，发上来共享，主要在于程序的架构方面的一点心得吧。。。有兴趣的请到我CSDN的下载页去下载看看，共同进步：http://download.csdn.net/detail/lzhdim/4122665</summary><published>2012-03-08T04:31:00Z</published><updated>2012-03-08T04:31:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2012/03/08/2385028.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2012/03/08/2385028.html"/><content type="html">&lt;p&gt;昨天刚整理了下以前写过的VB程序，把架构给整理出来了，发上来共享，主要在于程序的架构方面的一点心得吧。。。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;有兴趣的请到我CSDN的下载页去下载看看，共同进步：&lt;/p&gt;&lt;p&gt;&lt;a href="http://download.csdn.net/detail/lzhdim/4122665"&gt;http://download.csdn.net/detail/lzhdim/4122665&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/2385028.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2012/03/08/2385028.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2011/08/03/2126334.html</id><title type="text">IIS6 下2003服务器PHP环境终于搭建好了 发表个人经验</title><summary type="text">IIS6 下2003服务器PHP环境终于搭建好了 发表个人经验IIS + PHP5 + MySQL5 + ZendOptimizer + phpmyadmin安装与配置需要的软件请到 http://www.woyehei.com 下载php5.2.1(zip)http://www.woyehei.com/soft/html/127.htmlMySQL5.0.37http://www.woyehei.com/soft/html/124.htmlphpmyadmin2.10.0.2 http://www.woyehei.com/soft/html/129.htmlZendOptimizer-3.2</summary><published>2011-08-03T08:08:00Z</published><updated>2011-08-03T08:08:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2011/08/03/2126334.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2011/08/03/2126334.html"/><content type="html">&lt;div&gt;IIS6 下2003服务器PHP环境终于搭建好了 发表个人经验&lt;br /&gt;&lt;br /&gt;IIS + PHP5 + MySQL5 + ZendOptimizer + &lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=phpmyadmin" target="_blank"&gt;phpmyadmin&lt;/a&gt;安装与配置&lt;br /&gt;需要的软件请到 http://www.woyehei.com 下载&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;php5.2.1(zip)&amp;nbsp;&amp;nbsp;http://www.woyehei.com/soft/html/127.html&lt;br /&gt;MySQL5.0.37&amp;nbsp;&amp;nbsp;http://www.woyehei.com/soft/html/124.html&lt;br /&gt;phpmyadmin2.10.0.2 &lt;a href="http://www.woyehei.com/soft/html/129.html"&gt;http://www.woyehei.com/soft/html/129.html&lt;/a&gt;&lt;/p&gt;&lt;p align="left"&gt;ZendOptimizer-3.2.6&amp;nbsp;&amp;nbsp;http://www.woyehei.com/soft/html/126.html&lt;br /&gt;的安装与配置所需的软件 我是这样配置成功的&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;一 安装 PHP ：&lt;br /&gt;&lt;br /&gt;（1）、下载后得到 php-5.1.6-Win32.zip ，解压至C:\Inetpub\php（这个路径可以随意，不过下面要是用到这个路径，请相应修改）；&lt;br /&gt;&lt;br /&gt;（2）、再将C:\Inetpub\php目录下的所有&lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=dll%E6%96%87%E4%BB%B6" target="_blank"&gt;dll文件&lt;/a&gt;（主要是C:\Inetpub\php\ext下的DLL文件）拷到c:\Windows\system32下，覆盖已有的dll文件；&lt;br /&gt;&lt;br /&gt;（3）、将C:\PHP目录下的php.exe、php-win.exe和php.ini-recommended三个文件拷到C:\Windows （ Windows 2000 下为 C:\WINNT）下； 将C:\Windows\php.ini-recommended改名为php.ini,然后用记事本打开，利用记事本的查找功能搜索&lt;br /&gt;register_globals = Off&lt;br /&gt;将 Off 改成 On ；&lt;br /&gt;&lt;br /&gt;再搜索&lt;br /&gt;&lt;br /&gt;extension_dir =&lt;br /&gt;&lt;br /&gt;并将其路径指到你的 PHP 目录下的 extensions 目录，比如：extension_dir = "C:\Inetpub\php\ext" ；&lt;br /&gt;&lt;br /&gt;;Windows Extensions&lt;br /&gt;&lt;br /&gt;将下面列举的&lt;br /&gt;;extension=php_dbase.dll 【可选】&lt;br /&gt;&lt;br /&gt;;extension=php_gd2.dll 【这个是用来支持GD库的，一般需要，必选】&lt;br /&gt;&lt;br /&gt;;extension=php_ldap.dll 【可选】&lt;br /&gt;&lt;br /&gt;;extension=php_mbstring.dll 【这不选一般用PHPMYADMIN会出红色提示，故必选&lt;br /&gt;】&lt;br /&gt;&lt;br /&gt;;extension=php_mssql.dll 【这个是用来支持MSSQL的，可选】&lt;br /&gt;&lt;br /&gt;;extension=php_mysql.dll 【这个是用来支持MYSQL的，要支持MYSQL必选&lt;br /&gt;】&lt;br /&gt;&lt;br /&gt;将这些前的"；"去掉，其他的你需要的也可以去掉前面的;然后关闭保存该文件。&lt;br /&gt;&lt;br /&gt;（4）、配置 IIS 使其支持 PHP ：&lt;br /&gt;&lt;br /&gt;首先必须确定系统中已经正确安装 IIS ，如果没有安装，需要先安装 IIS ，安装步骤如下：&lt;br /&gt;&lt;br /&gt;打开&lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=%E6%B5%8F%E8%A7%88%E5%99%A8" target="_blank"&gt;浏览器&lt;/a&gt;，输入：http://localhost/，看到成功页面后进行下面的操作：&lt;br /&gt;&lt;br /&gt;PHP 支持 CGI 和 ISAPI 两种安装模式，推荐使用 ISAPI 模式。这里只解介绍 ISAPI 模式安装方法：ISAPI 模式安装步骤：&lt;br /&gt;&lt;br /&gt;在&amp;#8220;&lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=%E6%8E%A7%E5%88%B6%E9%9D%A2%E6%9D%BF" target="_blank"&gt;控制面板&lt;/a&gt;&amp;#8221;的&amp;#8220;管理工具&amp;#8221;中选择&amp;#8220;Internet 服务管理器&amp;#8221;，打开 IIS 后停止服务，然后在左侧&amp;#8220;你需要支持PHP的Web站点&amp;#8221;比如&amp;#8220;默认Web站点&amp;#8221;上单击右键选择&amp;#8220;属性&amp;#8221;，在打开的&amp;#8220; Web 站点属性&amp;#8221;窗口的&amp;#8220;ISAPI 筛选器&amp;#8221;标签里找到并点击&amp;#8220;添加&amp;#8221;按钮，在弹出的&amp;#8220;筛选器属性&amp;#8221;窗口中的&amp;#8220;筛选器名称&amp;#8221;栏中输入：PHP ，再将可执行文件指向 php5isapi.dll 所在路径，如：C:\Inetpub\php\php5isapi.dll 。&lt;br /&gt;&lt;br /&gt;打开&amp;#8220;Web 站点属性&amp;#8221;窗口的&amp;#8220;主目录&amp;#8221;标签，找到并点击&amp;#8220;配置&amp;#8221;按钮，在弹出的&amp;#8220;应用程序配置&amp;#8221;窗口中找到并点击&amp;#8220;添加&amp;#8221;按钮，在弹出的窗口中新增一个&lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=%E6%89%A9%E5%B1%95%E5%90%8D" target="_blank"&gt;扩展名&lt;/a&gt;映射，扩展名为 .php ，单击&amp;#8220;浏览&amp;#8221;将可执行文件指向 php5isapi.dll 所在路径，如：C:\Inetpub\php\php5isapi.dll，然后一路确定即可。如果还想支持诸如 .php3 ，.phtml 等扩展名的 PHP 文件，可以重复&amp;#8220;添加&amp;#8221;步骤。&lt;br /&gt;&lt;br /&gt;再打开&amp;#8220;Web 站点属性&amp;#8221;窗口的&amp;#8220;文档&amp;#8221;标签，找到并点击&amp;#8220;添加&amp;#8221;按钮，向默认的 Web 站点启动文档列表中添加 index.php 项。您可以将 index.php 升到最高优先级，这样，访问站点时就会首先自动寻找并打开 index.php 文档。&lt;br /&gt;&lt;br /&gt;确定 Web 目录的应用程序设置和执行许可中选择为纯脚本，然后关闭 Internet 信息服务管理器，在&lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6" target="_blank"&gt;命令提示符&lt;/a&gt;中执行如下命令：&lt;br /&gt;&lt;br /&gt;net stop w3svc&lt;br /&gt;net stop iisadmin&lt;br /&gt;net start w3svc&lt;br /&gt;&lt;br /&gt;打开浏览器，输入：http://localhost/，看到成功页面后，在 IIS 根目录下新建一个 phpinfo.php ，内容如下：&lt;br /&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;phpinfo();&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;打开浏览器，输入：http://localhost/phpinfo.php，将显示当前服务器所支持 PHP 的全部信息，可以看到 Server API的模式为：ISAPI 。&lt;br /&gt;&lt;br /&gt;三、安装 MySQL ：&lt;br /&gt;&lt;br /&gt;解压后双击执行 Setup.exe 即可,设置好你的root密码即可.&lt;br /&gt;&lt;br /&gt;四、安装 Zend Optimizer ：&lt;br /&gt;&lt;br /&gt;下载后得到 ZendOptimizer-2.5.7-Windows-i386.exe ，直接双击安装即可，安装过程要你选择 Web Server 时，选择 IIS ，然后提示你是否 Restart Web Server，选择是，完成安装之前提示是否备份 php.ini ，点确定后安装完成。需要注意的是：如果您的PHP是4.3以上版本，那么就不要用缺省安装，而应该用定制安装并选择 PHP的版本为PHP 4.3.X，方能正确安装，否则会说版本不支持。&lt;br /&gt;我这里安装到C:\Inetpub\Zend&lt;br /&gt;&lt;br /&gt;调用phpinfo()函数后显示：&lt;br /&gt;This program makes use of the Zend Scripting Language Engine:&lt;br /&gt;Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies&lt;br /&gt;with Zend Extension Manager v1.0.4, Copyright (c) 2003-2004, by Zend Technologies&lt;br /&gt;则表示安装成功了&lt;br /&gt;&lt;br /&gt;安装GD库 &lt;br /&gt;&lt;br /&gt;这一步在前面PHP.INI配置中实际上已经安装好了~&lt;br /&gt;&lt;br /&gt;在php.ini里找到 "extension_dir",然后将路径指向extension，如下（假设你的php安装路 &lt;br /&gt;径为：C:\Inetpub\php、设置extension_dir = "C:\Inetpub\php、ext"，完成这步后，在php.ini里找到"extension=php_gd2.dll"这一行，并且去掉前面的分号，gd库安装完成，用echophpinfo();测试是否成功！ &lt;br /&gt;&lt;br /&gt;五、安装 phpMyAdmin：&lt;br /&gt;下载得到 phpMyAdmin-2.6.0.zip ，将其解压到 IIS 根目录，找到并打开 config.inc.php ，做以下修改：&lt;br /&gt;&lt;br /&gt;搜索$cfg['PmaAbsoluteUri']，设置你的phpmyadmin的URL，如：$cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/'; 注意这里假设phpmyadmin在默认站点的根目录下&lt;br /&gt;搜索$cfg['blowfish_secret']，设定好root密码后这里也要填写比如ROOT密码123456则设置为$cfg['blowfish_secret'] = '123456';&lt;br /&gt;搜索$cfg['DefaultLang'] ，将其设置为 zh-gb2312 ；&lt;br /&gt;搜索$cfg['DefaultCharset'] ，将其设置为 gb2312 ；&lt;br /&gt;搜索$cfg['Servers'][$i]['auth_type']，默认为config，是不安全的，不推荐，推荐使用cookie，将其设置为$cfg['Servers'][$i]['auth_type'] = 'cookie'; &lt;br /&gt;注意这里如果设置为config请在下面设置用户名和密码！例如：&lt;br /&gt;$cfg['Servers'][$i]['user'] = 'root'; // MySQL user-----MySQL连接用户&lt;br /&gt;$cfg['Servers'][$i]['password'] = '123456'; &lt;br /&gt;&lt;br /&gt;打开浏览器，输入：&lt;br /&gt;&lt;br /&gt;http://localhost/phpMyAdmin/ ，若 IIS 和 MySQL 均已启动，输入用户ROOT密码123456即可浏览&lt;a style="border-bottom: blue 1px dotted; text-decoration: none" href="http://www.discuz.net/search.php?mod=my&amp;amp;source=adlink&amp;amp;q=%E6%95%B0%E6%8D%AE%E5%BA%93" target="_blank"&gt;数据库&lt;/a&gt;内容。&lt;br /&gt;phpMyAdmin 的具体功能，请慢慢熟悉，这里不再赘述。&lt;br /&gt;至此所有安装完毕。&lt;br /&gt;&lt;br /&gt;测试图&lt;br /&gt;&lt;ignore_js_op&gt;&lt;img style="cursor: pointer" id="aimg_1007024" title="QQ截图20110727105901.png" alt="QQ截图20110727105901.png" src="http://www.discuz.net/data/attachment/forum/201107/27/105921aetb9r8t2ayr0brt.png.thumb.jpg" unselectable="true" outfunc="null" initialized="true" status="2" zoomfile="data/attachment/forum/201107/27/105921aetb9r8t2ayr0brt.png" file="data/attachment/forum/201107/27/105921aetb9r8t2ayr0brt.png.thumb.jpg" inpost="1" /&gt; &lt;div style="z-index: 301; position: absolute; display: none; top: 3301px; left: 415px" id="aimg_1007024_menu" initialized="true" cache="1" fade="false" cover="0" layer="1" mtype="menu" ctrlkey="aimg_1007024"  aimg_tip?="" tip_4=""&gt;&lt;div xs0?=""&gt;&lt;div&gt;&lt;span title="2011-7-27 10:59:21"&gt;7&amp;nbsp;天前&lt;/span&gt; 上传&lt;/div&gt;&lt;a title="QQ截图20110727105901.png 下载次数:0" href="http://www.discuz.net/forum.php?mod=attachment&amp;amp;aid=MTAwNzAyNHwxZjEwYjFkOXwxMzEyMzU4NjI4fDE3MjYxNzh8MjI4NDU2MA%3D%3D&amp;amp;nothumb=yes" target="_blank"&gt;&lt;strong&gt;下载附件&lt;/strong&gt; (49.23 KB)&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/ignore_js_op&gt;&lt;ignore_js_op&gt;&lt;img style="cursor: pointer" id="aimg_1007023" title="QQ截图20110727105801.png" alt="QQ截图20110727105801.png" src="http://www.discuz.net/data/attachment/forum/201107/27/105919l351ys5q3mh3yjks.png.thumb.jpg" unselectable="true" outfunc="null" initialized="true" status="2" zoomfile="data/attachment/forum/201107/27/105919l351ys5q3mh3yjks.png" file="data/attachment/forum/201107/27/105919l351ys5q3mh3yjks.png.thumb.jpg" inpost="1" /&gt; &lt;div style="z-index: 301; position: absolute; display: none; top: 3656px; left: 415px" id="aimg_1007023_menu" initialized="true" cache="1" fade="false" cover="0" layer="1" mtype="menu" ctrlkey="aimg_1007023"  aimg_tip?="" tip_4=""&gt;&lt;div xs0?=""&gt;&lt;div&gt;&lt;span title="2011-7-27 10:59:19"&gt;7&amp;nbsp;天前&lt;/span&gt; 上传&lt;/div&gt;&lt;a title="QQ截图20110727105801.png 下载次数:0" href="http://www.discuz.net/forum.php?mod=attachment&amp;amp;aid=MTAwNzAyM3w1MDJjM2M5ZnwxMzEyMzU4NjI4fDE3MjYxNzh8MjI4NDU2MA%3D%3D&amp;amp;nothumb=yes" target="_blank"&gt;&lt;strong&gt;下载附件&lt;/strong&gt; (70.52 KB)&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/ignore_js_op&gt;&lt;br /&gt;&lt;ignore_js_op&gt;&lt;img style="cursor: pointer" id="aimg_1007050" title="20个小时而已。.png" alt="20个小时而已。.png" src="http://www.discuz.net/data/attachment/forum/201107/27/1113408okexw27zo9ag7o9.png.thumb.jpg" unselectable="true" outfunc="null" initialized="true" status="2" zoomfile="data/attachment/forum/201107/27/1113408okexw27zo9ag7o9.png" file="data/attachment/forum/201107/27/1113408okexw27zo9ag7o9.png.thumb.jpg" inpost="1" /&gt;&amp;nbsp;&amp;nbsp;&lt;div style="z-index: 301; position: absolute; display: none; top: 4110px; left: 415px" id="aimg_1007050_menu" initialized="true" cache="1" fade="false" cover="0" layer="1" mtype="menu" ctrlkey="aimg_1007050"  aimg_tip?="" tip_4=""&gt;&lt;div xs0?=""&gt;&lt;div&gt;&lt;span title="2011-7-27 11:13:40"&gt;7&amp;nbsp;天前&lt;/span&gt; 上传&lt;/div&gt;&lt;a title="20个小时而已。.png 下载次数:0" href="http://www.discuz.net/forum.php?mod=attachment&amp;amp;aid=MTAwNzA1MHxhYTY4OGM0ZXwxMzEyMzU4NjI4fDE3MjYxNzh8MjI4NDU2MA%3D%3D&amp;amp;nothumb=yes" target="_blank"&gt;&lt;strong&gt;下载附件&lt;/strong&gt; (12.15 KB)&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/ignore_js_op&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/2126334.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2011/08/03/2126334.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2011/08/03/2125720.html</id><title type="text">VMware Workstation网络连接的三种模式</title><summary type="text">经常要使用VMWare Workstation来在本地测试不同的操作系统，以前也搞不清楚网络连接三种模式，最近看了几篇文章才算明白。现总结如下：1. VMware Workstation的虚拟网络组件虚拟&lt;网卡/网络适配器&gt;：见下图。安装一个虚拟PC时自动安装一块虚拟&lt;网卡/网络适配器&gt;，可添加多块虚拟网卡。 虚拟交换机：见下图。安装VM时就自动安装了10台虚拟交换机。 虚拟网桥：只在虚拟网卡连接到VMnet0 (default Bridged)虚拟交换机上才应用虚拟网桥。 虚拟DHCP服务器：见下图。在虚拟网卡连接到VMnet1或VMnet8虚拟交换机时，自动安装运行</summary><published>2011-08-03T00:21:00Z</published><updated>2011-08-03T00:21:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2011/08/03/2125720.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2011/08/03/2125720.html"/><content type="html">&lt;p&gt;经常要使用VMWare &lt;span class="wp_keywordlink_affiliate"&gt;&lt;a title="查看 Workstation 的全部文章" href="http://www.storageonline.com.cn/tag/workstation/" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#0a95aa"&gt;Workstation&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;来在本地测试不同的操作系统，以前也搞不清楚网络连接三种模式，最近看了几篇文章才算明白。现总结如下：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. &lt;span class="wp_keywordlink_affiliate"&gt;&lt;a title="查看 VMware 的全部文章" href="http://www.storageonline.com.cn/tag/vmware/" target="_blank"&gt;&lt;em&gt;&lt;font color="#0a95aa"&gt;VMware&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;/span&gt; &lt;span class="wp_keywordlink_affiliate"&gt;&lt;a title="查看 Workstation 的全部文章" href="http://www.storageonline.com.cn/tag/workstation/" target="_blank"&gt;&lt;em&gt;&lt;font color="#0a95aa"&gt;Workstation&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;/span&gt;的虚拟网络组件&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;虚拟&amp;lt;网卡/网络适配器&amp;gt;：&lt;/strong&gt;见下图。安装一个虚拟PC时自动安装一块虚拟&amp;lt;网卡/网络适配器&amp;gt;，可添加多块虚拟网卡。 &lt;br /&gt;&lt;strong&gt;虚拟交换机：&lt;/strong&gt;见下图。安装VM时就自动安装了10台虚拟交换机。 &lt;br /&gt;&lt;strong&gt;虚拟网桥：&lt;/strong&gt;只在虚拟网卡连接到VMnet0 (default Bridged)虚拟交换机上才应用虚拟网桥。 &lt;br /&gt;&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualNICs.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation 虚拟网卡及虚拟交换机" border="0" alt="VMware Workstation 虚拟网卡及虚拟交换机" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualNICs_thumb.jpg" width="644" height="454" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;虚拟DHCP服务器：&lt;/strong&gt;见下图。在虚拟网卡连接到VMnet1或VMnet8虚拟交换机时，自动安装运行虚拟DHCP服务器并连接至这台虚拟交换机。&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualDHCPservers.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation 虚拟DHCP服务器" border="0" alt="VMware Workstation 虚拟DHCP服务器" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualDHCPservers_thumb.jpg" width="612" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;虚拟NAT服务器：&lt;/strong&gt;见下图。只在虚拟网卡连接到VMnet8 (NAT)虚拟交换机时才自动安装运行虚拟NAT服务器，并连接至这台虚拟交换机。&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualNATservers.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation 虚拟NAT服务器" border="0" alt="VMware Workstation 虚拟NAT服务器" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualNATservers_thumb.jpg" width="511" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;主机虚拟&amp;lt;网卡/网络适配器&amp;gt;：&lt;/strong&gt;见下图。相当于一块确实存在的网卡，是连接主机和虚拟交换机用的网卡。&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualPCNICs.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation 主机虚拟&lt;网卡/网络适配器  alt="" /&gt;" border=0 alt="VMware Workstation 主机虚拟&lt;网卡/网络适配器&gt;" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMwareWorkstationvirtualPCNICs_thumb.jpg" width=644 height=351&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;span class="wp_keywordlink_affiliate"&gt;&lt;a title="查看 VMware 的全部文章" href="http://www.storageonline.com.cn/tag/vmware/" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#0a95aa"&gt;VMware&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;安装之后，会有一台虚拟的DHCP服务器为虚拟机来分配IP地址以及虚拟的NAT服务器来映射内部地址到主机的外部地址，实际上都是一个系统服务而已，在开始&amp;#8212;&amp;gt;运行中输入services.msc，就会看到这两个服务： &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image23.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation 虚拟DHCP/NAT服务" border="0" alt="VMware Workstation 虚拟DHCP/NAT服务" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb23.png" width="628" height="53" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;#9632; VMnet0：这是&lt;span class="wp_keywordlink_affiliate"&gt;&lt;a title="查看 VMware 的全部文章" href="http://www.storageonline.com.cn/tag/vmware/" target="_blank"&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#0a95aa"&gt;VMware&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;用于虚拟桥接网络下的虚拟交换机； &lt;br /&gt;&amp;#9632; VMnet1：这是VMware用于虚拟Host-Only网络下的虚拟交换机； &lt;br /&gt;&amp;#9632; VMnet8：这是VMware用于虚拟NAT网络下的虚拟交换机； &lt;br /&gt;&amp;#9632; VMware Network Adapter VMnet1：这是Host用于与Host-Only虚拟网络进行通信的虚拟网卡； &lt;br /&gt;&amp;#9632; VMware Network Adapter VMnet8：这是Host用于与NAT虚拟网络进行通信的虚拟网卡；&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 桥接网络&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;拓扑图：&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMnet0defaultBridged.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 5px 15px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMnet0 (default Bridged)" border="0" alt="VMnet0 (default Bridged)" align="left" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMnet0defaultBridged_thumb.jpg" width="315" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这种方式直接将Host的物理网卡和Guest的网卡在VMnet0交换机上通过虚拟网桥进行桥接，和linux下一个网卡绑定两个不同地址类似，实际上是将网卡设置为混杂模式,从而达到侦听多个IP的能力。 &lt;br /&gt;在此种模式下，虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上，虚拟机和host机处于对等的地位，在网络关系上是平等的，因此无法对虚拟机的网络进行控制。&lt;/p&gt;&lt;p&gt;我的Host的物理网卡配置如下：&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image24.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation的虚拟网络" border="0" alt="VMware Workstation的虚拟网络" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb24.png" width="644" height="267" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;IP地址为DHCP获取方式，网关为192.168.0.1。&lt;/p&gt;&lt;p&gt;那么Guest就应该和Host处于同一个网段，它的配置可为：&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image25.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation的虚拟网络" border="0" alt="VMware Workstation的虚拟网络" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb25.png" width="644" height="354" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. NAT网络&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;拓扑图：&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMnet8NAT.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 5px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMnet8 (NAT)" border="0" alt="VMnet8 (NAT)" align="left" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMnet8NAT_thumb.jpg" width="315" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下)，这里的vmnet8就相当于连接到内网的网卡，而虚拟机本身则相当于运行在内网上的机器，虚拟机内的网卡(eth0)则独立于vmnet8。&lt;/p&gt;&lt;p&gt;在NAT网络中，会使用到VMnet8虚拟交换机，Host上的VMware Network Adapter VMnet8虚拟网卡被连接到VMnet8交换机上，来与Guest进行通信，但是VMware Network Adapter VMnet8虚拟网卡仅仅是用于和VMnet8网段通信用的，它并不为VMnet8网段提供路由功能，处于虚拟NAT网络下的Guest是使用虚拟的NAT服务器连接的Internet的。&lt;/p&gt;&lt;p&gt;如图：我的VMware Network Adapter VMnet8虚拟网卡的IP地址配置如下：(IP地址是手工指定的，是VMware在安装的时候自动随机指定的一个IP地址)&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image26.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMWare Workstation网络连接的三种模式" border="0" alt="VMWare Workstation网络连接的三种模式" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb26.png" width="644" height="175" /&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;NAT网络的虚拟机的IP地址也为192.168.152.0这个网段，其IP地址配置为：&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image27.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMWare Workstation网络连接的三种模式" border="0" alt="VMWare Workstation网络连接的三种模式" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb27.png" width="644" height="213" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上，这样虚拟机就可以使用dhcp服务，更为重要的是，vmware自带了nat服务，提供了从vmnet8到外网的地址转换。所以这种情况是一个实实在在的nat服务器在运行，只不过是供虚拟机用的。很显然，如果你只有一个外网地址，此种方式很合适。&lt;/p&gt;&lt;p&gt;有一点需要说明的是，在NAT方式的网络中，Guest的Gateway都指向了&lt;font color="#ff0000"&gt;&lt;strong&gt;192.168.X.2&lt;/strong&gt;&lt;/font&gt;，在本例中，X=152，也就是那个虚拟的NAT服务器的地址，这个服务器是一台虚拟的NAT服务器，你可以ping通它，但是却无法访问到这台虚拟机，因为这同样也是一个系统服务：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image23.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMware Workstation 虚拟DHCP/NAT服务" border="0" alt="VMware Workstation 虚拟DHCP/NAT服务" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb23.png" width="628" height="53" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这时候，你的Guest和Host就可以实现互访了，并且如果你的Host此时已经连接到了Internet，那么你的Guest也就可以连上Internet了。那么VMware Network Adapter VMnet8虚拟网卡在这里扮演了一个什么角色呢？它仅仅是为Host和NAT虚拟网络下的Guest通信提供一个接口，所以，即便Disable掉这块虚拟网卡，Guest仍然是可以上网的，只是Host无法再访问VMnet8网段而已。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 怎样修改NAT网络ID&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;那么如果嫌VMware分配的网络不好，比如它给你分了个192.168.152.0的网络ID给VMnet8，那么你可以到这里来修改，单击VMware上的&amp;#8220;Host&amp;#8221;菜单，选择&amp;#8220;Virtual Network Settings &amp;#8230;&amp;#8221;&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image28.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMWare Workstation网络连接的三种模式" border="0" alt="VMWare Workstation网络连接的三种模式" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb28.png" width="644" height="288" /&gt;&lt;/a&gt; &lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image29.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMWare Workstation网络连接的三种模式" border="0" alt="VMWare Workstation网络连接的三种模式" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb29.png" width="569" height="484" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;我在这里调整的是VMnet8，那么VMnet1当然也可以用这样的方式来调整。记住，再整之后VMware Network Adapter VMnet1和VMware Network Adapter VMnet8也需要调整到相应的网络ID，不然Host和Guest不能通讯。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. &lt;strong&gt;Host-Only&lt;/strong&gt;&lt;strong&gt;网络&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;拓扑图：&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMnet1Hostonly.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 5px 5px 5px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMnet1 (Host-only)" border="0" alt="VMnet1 (Host-only)" align="right" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/VMnet1Hostonly_thumb.jpg" width="315" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;这应该是最为灵活的方，有兴趣的话可以进行各种网络实验。和nat唯一的不同的是,此种方式下没有地址转换服务。因此，默认情况下,虚拟机只能到主机访问，它当然就没有办法访问Internet，这也是hostonly的名字的意义. &lt;br /&gt;默认情况下,也会有一个dhcp服务加载到vmnet1上。这样连接到vmnet8上的虚拟机仍然可以设置成dhcp,方便系统的配置。&lt;/p&gt;&lt;p&gt;如图，这是我的Host的VMware Network Adapter VMnet1虚拟网卡的配置： &lt;br /&gt;&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image30.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMWare Workstation网络连接的三种模式" border="0" alt="VMWare Workstation网络连接的三种模式" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb30.png" width="644" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Host-Only&lt;/strong&gt;网络的虚拟机的IP地址也为192.168.192.0这个网段，其IP地址配为： &lt;br /&gt;&lt;a href="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image31.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="VMWare Workstation网络连接的三种模式" border="0" alt="VMWare Workstation网络连接的三种模式" src="http://www.storageonline.com.cn/wp-content/uploads/2011/04/image_thumb31.png" width="644" height="185" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;可以看到，在Host-Only网络下，Guest的Default Gateway被设置为NULL，这是由于没有使用虚拟NAT服务器的缘故。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;6. 是不是&lt;strong&gt;Host-Only&lt;/strong&gt;&lt;strong&gt;网络&lt;/strong&gt;就没有办法连接到外网呢？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;当然不是，事实上，这种方式更为灵活。你可以使用自己的方式,从而达到最理想的配置，例如： &lt;/p&gt;&lt;p&gt;&lt;strong&gt;a. 使用自己dhcp服务：&lt;/strong&gt;首先停掉vmware自带的dhcp服务,使dhcp服务更为统一。 &lt;br /&gt;&lt;strong&gt;b. 使用自己的nat：&lt;/strong&gt;方便加入防火墙。windows host可以做nat的方法很多，简单的如windows xp的internet共享，复杂的如windows server里的nat服务。 &lt;br /&gt;&lt;strong&gt;c. 使用自己的防火墙：&lt;/strong&gt;因为你可以完全控制vmnet1，你可以加入(或试验)防火墙在vmnet1和外网的网卡间。 &lt;/p&gt;&lt;p&gt;从以上可以看出，hostonly这种模式和普通的nat server带整个内网上网的情形类似，因此你可以方便的进行与之有关的实验,比如防火强的设置等。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/2125720.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2011/08/03/2125720.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2011/03/10/1980028.html</id><title type="text">C#多线程程序示例</title><summary type="text">最近有个短信接口的项目，其中就有用到多线程发送短信的内容，特此写了一个多线程的例子。具体不多说了，提供下载，有需要的朋友请指点问题所在。http://download.csdn.net/detail/lzhdim/4121220</summary><published>2011-03-10T09:26:00Z</published><updated>2011-03-10T09:26:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2011/03/10/1980028.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2011/03/10/1980028.html"/><content type="html">&lt;p&gt;最近有个短信接口的项目，其中就有用到多线程发送短信的内容，特此写了一个多线程的例子。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;具体不多说了，提供下载，有需要的朋友请指点问题所在。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a title="http://download.csdn.net/detail/lzhdim/4121220" href="http://download.csdn.net/detail/lzhdim/4121220" target="_blank"&gt;http://download.csdn.net/detail/lzhdim/4121220&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/1980028.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2011/03/10/1980028.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2011/03/08/1977426.html</id><title type="text">[转] 一个小公司老板的日常管理，希望能让创业的朋友学到东西</title><summary type="text">1. 小公司如何留住骨干： 这些年物价上涨，费用上涨，公司利润却未涨多少。每个员工都希望工资大幅增加，但估计90%以上小公司无法做到这点。有时我这当老板的恨不得将公司门一关，自己拿着资金炒股或炒房，图个清净。虽说近几年由于给每个员工上5险1金，人均费用每月增加几百元，但员工并不领情，员工只算每月到手多少钱，至于公司的支出与己无关。 既然无法让所有人都满意，我就只满足公司20%的骨干。 首先发展骨干员工入股：我将公司股份买一送一，半价销售给骨干员工，五年内退股只退还本金，五年以上退股我三倍赎回。每年拿出利润的60%分红。反正有钱大家赚，但股东一旦做了对不起公司的事，加倍惩罚，由股金中扣除。这招还</summary><published>2011-03-08T09:06:00Z</published><updated>2011-03-08T09:06:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2011/03/08/1977426.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2011/03/08/1977426.html"/><content type="html">&lt;div&gt;&lt;p&gt;1.  小公司如何留住骨干：&lt;br /&gt;这些年物价上涨，费用上涨，公司利润却未涨多少。每个员工都希望工资大幅增加，但估计90%以上小公司无法做到这点。有时我这当老板的恨不得将公司门一关，自己拿着资金炒股或炒房，图个清净。虽说近几年由于给每个员工上5险1金，人均费用每月增加几百元，但员工并不领情，员工只算每月到手多少钱，至于公司的支出与己无关。&lt;br /&gt;既然无法让所有人都满意，我就只满足公司20%的骨干。&lt;br /&gt;首先发展骨干员工入股：我将公司股份买一送一，半价销售给骨干员工，五年内退股只退还本金，五年以上退股我三倍赎回。每年拿出利润的60%分红。反正有钱大家赚，但股东一旦做了对不起公司的事，加倍惩罚，由股金中扣除。这招还真好使，在近5年里没有一个股东离职，而且公司重点岗位都有股东，省了我不少精力。&lt;br /&gt;为什么不白送骨干员工股份？其实我并不是在乎钱，主要是白给的东西别人不珍惜，而且入股的钱又可作为押金，以防股东做出格的事，再说员工入股的钱不出5年即可通过分红收回，不投入哪来的产出啊&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;2.关于授权&lt;br /&gt;记得公司刚有十几个人的时候，全公司我最忙，经常同时接两三个销售电话，还得安排送货，结账，进货，每天来得最早，走得最晚。一次我弟弟到公司，看了半天，发表感慨说：&amp;#8220;哥我怎么觉得你在养活公司所有人哪？&amp;#8221;我当时还挺自豪。结果公司四五年也发展不大，一直十几个人，而且公司员工感觉备受压抑，无发展空间。后来终于明白该放权就得放权，哪怕员工只能做到你的70%。有时候真着急啊，明明能谈下的客户销售人员就是差那么一点谈不下来，恨不得立刻自己冲上去，该忍还得忍，要不手下员工如何进步。&lt;br /&gt;小公司发展过程中15人是个坎，50人是个坎，200人又是个坎，管理方法不改进，一般无法进一步发展。老板事事亲力亲为的公司，很难过15人。一个人能力强，可直接管理七八个人，能力一般，则只能直接领导四五个人。各个国家效率最高的部门就是军队，看看军队的组织结构：一个班十一二个人，除班长外还有一个副班长，三个班一个排，三个排一个连，以此类推。团长管一千多人，可能只认识其中百十来人。团长看见某个士兵有问题，绝对不会骂士兵，他只会骂士兵所在营的营长，营长则再骂连长，一级管理一级，最后班长把该士兵剥皮了事。所以军队尽管有千军万马，依然能做到令行禁止。&lt;br /&gt;现在客户找我买东西，我经常说：&amp;#8220;哎呀真对不起，价格我不知道，我给您介绍个销售人员，我让他跟您联系吧。&amp;#8221;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;3.有的钱不能省&lt;br /&gt;刚创业时也就一两个人，自己销售，进货，维修，跑银行。当时没有注册资金，借朋友的营业执照。自己到外面学习了几个月会计就开始瞎做报表。月底到税务局报税，报表一交，专管员看了两眼，开始问问题。问的问题我根本不明白，更别说回答了。专管员一脸不高兴，问：&amp;#8220;你懂不懂？&amp;#8221;。我陪着笑脸：&amp;#8220;不懂，不懂。&amp;#8221;&amp;#8220;不懂你来干嘛。换个懂的来。&amp;#8221;&amp;#8220;好，好，下次一定换个懂的来。&amp;#8221;下个月我又瞎做了张报表去税务局报税。专管员显然对我又印象：&amp;#8220;怎么又你来了？&amp;#8221;我只好顺嘴胡编:&amp;#8220;会计怀孕来不了，只好我来。&amp;#8221;。&amp;#8220;！&amp;#8221;  。第二天我就找了个会计公司，一月300元钱，以后再不自己跑税务局了。一直到公司十几个人，我仍然让会计公司做账，公司只有一个出纳，没有专职会计和库管。随后几年业务开展的不错，没少挣钱，可年底公司帐上资金却没增多少。后来我发现公司只要一过十个人，老板一人根本看不过来，整个公司就像个筛子一样，到处都是洞，能剩下钱才怪。指望公司员工都是焦裕禄和雷锋，门都没有，哪怕提成给员工70%，他还会惦记剩下的30%，傻瓜才不贪污。只有制度健全，让心数不正的人无懈可击，才能管好公司。感谢我现在的会计，工作极为负责。下辈子再办公司，公司只要有4个人，一定是一个老板，一个会计，一个出纳，一个库管，打死再不省那点钱了。&lt;/p&gt; &lt;p&gt;这句话放在90%的公司身上是对的，当然，如果您觉得自己是那剩下的10%，也不妨一试。&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;4.隔行不挣钱&lt;/p&gt; &lt;p&gt;一般公司只要能坚持个三五年，挣了点钱，老板就开始琢磨再干点什么。大部分人总觉得自己的行业不如别人的行业挣钱，很不幸，我就是其中一个（我觉得自己的经历整个可编个小企业错误大全）。上世纪末，脑袋一热，开了个饭馆，从此厄运开始了。当初本人觉得自己销售方面颇有天赋，开饭馆肯定没问题。谁知这该死的饭馆光有销售根本不行，做的不好吃别人最多只来一次。本人不好吃喝，也没耐心和大厨琢磨新菜。而且开饭馆不光进货结账，卫生防疫，工商公共安全专家样样要跟上，起早贪黑累的要死，跟开公司不一个路数，本人实在没耐心，找了个公司部门经理去负责，管得一塌糊涂，半年赔了几十万，关门了事。现在谁再跟我提开饭馆我跟谁急，去饭馆吃饭行，别的一概免谈。&lt;br /&gt;如各位有兴趣要开饭馆，一定先想明白以下几点：&lt;br /&gt;A:  你是否能起早贪黑吃得了苦&lt;br /&gt;B: 如是接别人转让的饭馆搞明白上家为何转让（不可只听一面之辞，一定在该饭馆蹲两天）&lt;br /&gt;C:  饭馆租金，人员开销等费用核到每天每张桌子是多少钱，饭馆定位，面向什么层次客户，一天能翻几次台，平均每桌消费多少，毛利率多少，是否能赚回来（一定要掰着手指头算好，不行连脚趾头一块上，否则赔死你）。&lt;br /&gt;D:  附近的工商，卫生，公共安全专家，地痞流氓你是否搞得定。&lt;br /&gt;E: 停车问题。&lt;br /&gt;F:  找大厨。找着后如何管理，是后厨承包还是流水提成？&lt;br /&gt;G: 你老婆是否愿意做采购或找个向你老婆一样对你忠心的人做采购。&lt;br /&gt;H:  饭馆服务员可得管吃管住，而且工资近期增长很快，预算要留出富裕。计算不好你就只能剥削你自己外加你爸你妈你老婆。&lt;br /&gt;I：&amp;#8230;&amp;#8230;还有N多问题自己想吧。&lt;br /&gt;据我的经验，饭馆和美容美发都不好干，只要看看报纸上转让信息就知道，基本就这两个行业。&lt;br /&gt;另：本人的副业还曾有过服装，节电设备等，都没挣到钱。&lt;br /&gt;本人比较惭愧，从未在大公司待过，也未系统地接受过管理培训。刚毕业时虽进入大部委工作两年，可惜职务太低，没学到真谛。一说起管理，总感觉别人讲得头头是道，就好像武侠小说里的名门正派，而自己则是街头打群架的小混混出身，没有理论，只有教训。有时感觉成功是不可以复制的而错误则是可以重复的。比如大家就算知晓了微软运行的每一个步骤也不可能成为另一个比尔盖茨，但若有人像我原来一样不重视财务管理十有八九公司在钱财上会有损失。&lt;br /&gt;在随后一段时间内，我会把自己的经验教训逐步列出，想到哪写哪吧。不过各位新创业的朋友读过我的文章后估计还会犯同样的错误，只是希望大家犯的错误小点，过程短点，毕竟在岸上看过一百遍游泳教学片下水后还得喝点水。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　5.关于招聘&lt;br /&gt;这些年没少招聘，几年前最多时我一下午面试五六十人。刚开始没有经验，每回招人都找最好的，工资一千多的售后服务岗位经常招名牌大学本科生，英语过四级。后来发现，招来人根本留不住。本来简单工作的岗位中专生完全能够胜任，找个本科生双方都不合适，只是在写公司简介时方便吹牛。另外面试时应聘人员说的话不可全信，有时对方刚失去工作后比较失落，为得到新工作，他们什么都敢承诺。某次公司招聘商务，岗位工资定为两千左右，一个女孩投简历面试，本科学历，3年工作经验，上份工作工资在两千五，我问她这次工资比上份工作工资低，能否接受。她毫不犹豫表示没问题。由于她比较适合商务职位，我就录用了她。半个月后，前任商务和她交接完离职后第二天她也离职，理由居然是工资低，搞得公司非常被动。再次招聘我招了个原工资一千五百元的女孩，现在还在该岗位，不但干得好，而且对工资也很满意。大部分人对待新工作职位及待遇都是只能上不能下，能上能下的人太少了，Dengxp应该算一个。&lt;br /&gt;招人的经验是：宁可漏过一千，不可错招一个（源于历史上某个著名人物语录）。据我的经验，公司招聘如低一档用人，高一档发工资效果比较好（也就是招三流的人才，干二流的工作，发一流的工资。当然，以上一流三流都是相对的）。招聘时应不嫌麻烦，仔细核对应聘人员身份。去年我公司连续发生两起新员工携款潜逃事件，打电话找人时对方有恃无恐：反正我应聘时的身份证学历证家庭住址都是假的，几千块钱pol.ice都不管。别说pol.ice还真不管。现在招聘，本地人公司都一一核实，外地人一律要有本地人担保，弄虚作假者一概不要。从此再无类似情况发生。&lt;br /&gt;对于下岗职工我个人有一定偏见。大部分下岗职工，特别是岁数稍大的国营单位下岗职工基本上牢骚满腹，觉得社会对他不公，而且把不满情绪及原单位的种种不良习气都带到新公司，觉得公司给他什么福利都是应该的，别人都欠他的，很难融入新公司，踏实肯干的占少一部分。大概私营企业不适合下岗职工吧。此外亲戚朋友能少用就少用吧，这个话题以后我还将涉及。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;6.老板尽量唱红脸&lt;br /&gt;每天公司里总有很多事发生，有的应该表扬，有的应该批评。批评和表扬到底该由谁来执行呢？&lt;br /&gt;刚干公司时，找不着当老板的感觉，平素又最烦管人，所以员工有什么问题我很少说。结果公司员工自由散漫，谁也不服谁，工作无法开展。后来觉得再这样下去实在不行，于是开始板起脸管人，这下新的问题又出来了，公司里几乎所有的矛盾都集中到我和公司员工之间，经常有员工当面与我理论是非曲直，这老板当的真郁闷，而我又实在不想当一个声色俱厉的管理者。后来与日本企业接触多了，发现不少奥秘。日本公司总经理很少骂公司普通员工，对公司底层员工可和蔼了，但他经常当着员工的面训斥公司中层干部，而普通员工犯错误则由该员工的直接领导负责处理，当然月底发工资时总经理心里可不含糊，这样公司不仅管理得井井有条，而且员工心里也比较平衡。&lt;br /&gt;他山之石可以工玉，说干就干，咱公司不大，好歹也有几个主管。于是开会明确职责，谁的手下出问题谁自己处理，别什么问题都往我这推。平常我一般只表扬好人好事，鼓励为主，而主管自身犯错时我也很少当众批评，通常是私下交流。时间不长，公司管理顺畅了，我在公司里的形象也大为改观，员工更尊敬我了。&lt;br /&gt;有时觉得，老板对于公司有点像古代皇帝对于国家。如果皇帝很贤明而大臣很昏庸，老百姓通常觉得国家还是有希望的，大不了清君侧，换个大臣了事。而如果皇帝很昏庸，则老百姓通常觉得这个国家没希望了，开始琢磨造反改朝换代。咱当老板总不能让公司员工揭竿而起或用脚表态一走了之吧，既然主管和部门经理享受着公司岗位津贴当然应该为老板分忧，该唱黑脸作恶人时就应当仁不让，而老板一般应保持一个超然的态度，置身于事件之外，旁观者清吗。不过部门经理需要支持时，只要不是原则性错误，我通常态度鲜明予以支持。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;7.公司里的亲戚&lt;br /&gt;这个问题，我只有教训，没有经验。还好，老婆工作单位一直不错，世界500强，对我的小公司没什么兴趣，因此公司刚成立时，我根据平时耳濡目染的各类情况，决定尽量不用亲戚朋友。后来公司到一定规模时，外地一个长辈打来电话，说她儿子（也就是我表弟）毕业一年，在当地我们这个行业的一个小公司当业务员，收入不是很高，希望来北京发展。我这个亲戚家庭比较困难，其中一个孩子因为特殊情况无法上班，而要来北京的这个表弟我原来见过，现在十八九岁，相当聪明，当时想公司正缺人，用谁不是用，因此我爽快地同意了。&lt;br /&gt;表弟刚来北京时，吃住都在我父母家，年轻人和老年人生活习惯不同，搞得我妈经常找我抱怨。过了一段时间，我将其安排到公司宿舍，算是解决了问题。表弟人很机灵，又会来事，几个月时间就完全适应公司环境，而且在部门里业务完成的很好，提成总在前几名。后来我发现，表弟经常在公司里表白自己的特殊身份，对同事吆五喝六，公司其他员工反响很大。为此我找他谈过几回，他都表示一定改正，不过收效不大。转眼一年过去，表弟在这个行业里已经如鱼得水，挥洒自如。这时，表弟找我说他在老家有几个同学，又聪明又可靠，希望带过来一起在公司发展。我想这是好事啊，来吧，照单全收。麻烦开始了。&lt;br /&gt;表弟和他的几个朋友吃住都在一起，相互之间只说家乡话，公司里除了我谁也听不懂。而且他们虽在不同部门，但被部门主管察觉他们相互勾结挣黑钱。表弟非常聪明，他散布说公司股东之间有矛盾，他是我这一派的，让他的直接主管不要站错队，否则后患无穷。公司不少员工真被他唬住了，过了一段时间，问题才反映到我这来。公司对待此类问题一向是第一次罚款警告，第二次开除。我和表弟谈了一回，他拍胸脯表示绝不再犯类似错误。没过一个月，又有部门主管向我反映表弟的小团伙在干黒活，而且不但不避讳其他员工，甚至鼓励其他人一起干。我真的很为难，再不管该养虎为患了，我还指望公司做强做大，让一起创业的股东老有所依呐。长痛不如短痛，一咬牙，我将表弟和他的小团伙陆续请出了公司。公司业务为此震荡半年。&lt;br /&gt;表弟靠着从公司带走的客户，现在还在这个行业做，每年也挣不少钱还买了车。&lt;br /&gt;亲戚朋友能不用还是不用吧，否则最后亲戚朋友也没得做了。&lt;br /&gt;曾经听过其他公司老总讲他在公司做大后如何对待亲戚。他的五六个亲戚在他创业时不计得失帮他干，做大后亲戚跟不上公司发展步调，且占据高位不好管理。这时，他采取牺牲钱财保全亲情的方法：岁数大的给一笔钱帮其另外创业，岁数小的公司出钱送到国外留学并负担所有开销，读成MBA后帮其再找工作从而顺利解决这一棘手问题，高！&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;8.当老板和开车&lt;br /&gt;去年回老家，坐一个亲戚开的车。亲戚刚拿本没多久，属于实习司机。一道上马路又宽又直，司机的手却在不停地动，左一下右一下，车也在画龙，我坐在副座上，心里很紧张，系上安全带，嘴里话也少了，脚下直使劲，旁边车道上的车不停地在按喇叭，还好，最后终于安全到达。回想十年前自己刚拿本时，已是老司机的弟弟坐我的车也提过同样问题，当时自己信心很足，根本不理解坐车的人怎么会有这种感觉，现在方才明白。&lt;br /&gt;总结自己开公司，也经常犯类似的错。政策朝令夕改，看见别的公司有什么新章程常常一拍脑门拿来就用，过段时间发现效果不好又推倒重来，弄得公司员工无所适从。原有的提成奖励方法有的已经很好，经过实践检验较为合理，员工也认可，偏偏听完什么专家讲座或看完某本管理书后，不经过深思熟虑并结合公司实际情况进行改造照搬照抄，立刻重新制定政策，结果会计抱怨不好操作，员工抱怨政策不合理，一通折腾后又改回原样。&lt;br /&gt;现在常想，办公司和开车很像，老板就好比驾驶员，车在路上跑，只要在本车道的两条白线内就OK，不必时刻调整方向盘，否则司机累，乘客累，车还画龙易出危险，费力不讨好。同样办公司只要公司运营在可控范围内不犯大错，政策就应稳定执行，保持连贯性，让员工心里有底。小公司老板权力集于一身，缺乏监督，制定政策更应该小心谨慎，不然公司总在调整，员工缺乏稳定感，不跑光才怪呢。想想当初Dengxp为什么承诺香港回归后体制50年不变。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　9.按时发工资&lt;br /&gt;其实这一条是当老板最基本的素质。估计每一个老板都不会反对这一点（至少在口头上不会反对），但实际情况是很多公司做不到这一点。&lt;br /&gt;公司在日常运营时，会经常遇到资金紧张的情况，比如月底或年底压一批货从厂家拿个高额折扣，做工程甲方押着工程款未能及时支付，银行贷款到期需立即归还等等，所有这一切对于老板来说都是未能及时发工资的充分理由。老板一般想：又不是不发工资，只不过稍微晚几天，公司资金紧张，员工应该理解。真实情况是：无论任何理由，对于不按时足额发工资，员工都无法理解。员工的工资不是老板赏赐的，而是他辛苦所得，没准他正等着到日子拿工资交房租，还月供或支付孩子的学费。未能及时领到工资员工可能马上就会面临生存问题。正常情况下，老板兜里的钱总比员工活分些，所以老板经常想当然认为员工晚拿几天工资没关系。&lt;br /&gt;那么如果碰到资金紧张时该怎么办？一般情况下，做生意量力而行吧，有多少本挣多少利，不行就找银行贷款。如果银行贷不到款，也可公司内部或亲戚朋友之间集资，讲明用钱的地方，谈好借款期及利息，大部分员工对于公司有把握的业务还是愿意参与的。到月底实在发不出工资，如果公司还想继续做下去，老板还是先从自己做起把私房钱拿出来吧，还不够把房子车子先典当了，资金周转过来再赎回。&lt;br /&gt;拖欠工资这事有点像吸毒，有一回就会有第二回，只要资金一紧张老板就会用拖欠员工工资来缓解，结果员工对公司和老板的信任荡然无存。调查表明，员工对于公司最无法容忍的就是拖欠工资，这也经常是某些企业人员流动的最主要因素。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;10.学会说&amp;#8220;不&amp;#8221;&lt;br /&gt;中国人好面子，&amp;#8220;不&amp;#8221;字很难说出口，而老板又是公司的最后一道关口，有时不得不拉下脸说&amp;#8220;不&amp;#8221;。&lt;br /&gt;我们公司有规定，公司的钱一律不借个人，当然，特殊情况员工可以预支部分工资。前两年，公司一个骨干员工找我聊天，他问：&amp;#8220;如果公司里一个员工，对公司贡献是其他人的好几倍，公司会不会借钱给他？&amp;#8221;对这个问题我真的很犹豫，想了半天，我说：&amp;#8220;公司有规定，公司的钱一律不借个人。&amp;#8221;他还不甘心，又问：&amp;#8220;对骨干员工也这样？&amp;#8221;。我说：&amp;#8220;对所有人公司一视同仁，骨干员工工资奖金可以多发，可以优惠条件入股，但对于这项规定谁也不能例外。&amp;#8221;随后我问他是不是自己要借钱，他承认说要买房子想借三十万。我很奇怪，买房可找银行贷款呀，这个员工说找银行贷款要付利息和手续费，想着找公司借钱可以不付利息了。后来我了解到他已经有一套住房想着再买一套住房等升值挣钱呢。一年后，该员工因为其他原因离职了。想想当初要是借钱给他，此时还真不好要回来。回绝过一回，以后类似情况就好处理了。这些年，公司包括我在内的所有股东买房钱不够都是找银行贷款，没人借用公司流动资金。想想公司再有钱又怎能代替银行的功能。&lt;br /&gt;有时公司的不少规定都有特殊情况，但在原则问题上老板一定站稳立场，规定面前人人平等，所谓不患多寡患不公，没有不透风的墙，只要开了先例以后其他员工就不好管了。近些年媒体上不是一直嚷嚷要法制不要人治，一定有他的道理。当老板该说&amp;#8220;不&amp;#8221;时就说&amp;#8220;不&amp;#8221;，无论对谁，虽然当时被人骂难受一下总比公司歇菜难受一辈子强，有很多公司就因为老板抹不开面子盲目给别人担保或随意借款给人结果最后自己公司倒闭了。当老板不对自己的公司负责别人是不会为你着想的。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　11.不要在公司内部奢望交朋友&lt;br /&gt;  刚当老板时不习惯管人，总觉得公司里应该人人平等，大家都是朋友，有什么事好商量。干了一段时间后，感觉公司里比较混乱，制度形同虚设，犯错误成本非常低，大家日常基本是想干啥就干啥，月底工资还谁也不能少发。&lt;br /&gt;一天，一个在大公司工作的朋友到我这待了半天，走时深有感触地对我说：你这管理要加强啊，在公司半天都看不出谁是老板，员工既不怕你也不听你呀。我听后觉得很有道理，但具体怎么做也搞不明白。后来问题终于集中爆发了，公司里贪污现象严重，效率低下，员工觉得没有奔头，几个骨干自己一合计单挑一滩，十几个人的公司跑了七八个并带走了一半客户。&lt;br /&gt;好在此时我还有另外一个较小的分公司，新招了几个业务员。毕竟本人是白手起家，心理承受能力足够强，一咬牙重新开始。这次吸取教训，制定严格的规章制度并认真执行，业务很快有了起色，一年后人员又恢复到十几个，利润也超过以前。&lt;br /&gt;想想还是自己当初还是心态不对，认为自己的公司应象国营企业一样，人人都是公司的主人翁，人人都平等，大家自觉把事干好，纯粹是扯淡。公司内部大家利益不同，岗位不同，哪来什么绝对平等。虽然大家人格上是平等的，但岗位职权工资奖金上怎么可能平等呢？为什么除了垄断行业外，大部分国营企业都倒闭了？因为国营企业的经营观念管理方法不符合目前的市场经济和社会环境，我觉得我们从小接受的教育从根本上不符合人的本性。当初红灯记里鸠山说&amp;#8220;人不为己天诛地灭&amp;#8221;一直被当作反面典型加以批判，其实我现在认为这话好像符合每个人自然的第一反应。世人熙熙皆为利来，使人攘攘皆为利往，连出家的和尚都明白这个道理。当老板就当老板吧，甘蔗没有两头甜，我不再奢望与公司员工做朋友，一切按规章制度来，只要管理好公司，让大家尽量拿到更多的工资奖金，人人都上保险，骨干员工入股共享公司发展成果，对得起自己的良心就完了。老板本来就是个孤独的职业，交朋友就在公司以外吧。&lt;br /&gt;要说规章制度，每个稍具规模的公司都有一大本，但不同公司的管理水平相差可大了去了，关键还在于规章制度是否被认真执行，老板能不能自己认可规章制度并亲自或安排专人监督落实。规章制度执行好了，人员管理就水到渠成，一切按规矩来，老板也无用一天到晚训斥员工。其实，从办公司到现在，我没有骂过任何一个员工，有几次公司员工离职后又回来，原因竟然都是无法忍受新公司老板发脾气骂人，呵呵，不过我感觉现在我在公司还挺有威信，至少朋友来公司不会说看不出谁是老板了。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　12.避免当场做决定&lt;br /&gt;影视作品，报纸广播里经常有这样的场景：领导干部现场办公或下基层走访，有人民群众扶老携幼涕泪滂沱地反映当地官员久拖不决的某些问题，领导同志大手一挥，无比激动地斥责那些不作为的贪官污吏，该免职的免职，该法办的法办，几年解决不了的问题五分钟之内现场解决，真是大快人心，爽！&lt;br /&gt;当老板没多久，公司人员渐渐多起来，我的领导欲望也逐渐膨胀，常常脑袋一热手一挥解决问题。有一回，业务员甲向我投诉，另一个业务员乙恶性竞争抢他的客户，同一单生意故意报低价致使用户未从甲业务员处购买，公司也在利润上受到损失。我一听，非常生气，这种极端自私的行为如何能够容忍，于是贴出通知：此担生意，乙业务员不仅没有提成，而且通报批评，所有提成奖励归甲业务员。后来乙业务员反应激烈地找到我说该用户他已经跟了半年多，价格型号都基本谈妥，前些天有次他外出拜访其他用户时该用户打电话到公司落实细节问题结果甲业务员接了电话，过后甲不仅未转告乙业务员，而且还让用户直接找甲业务员自己并许诺更多优惠，差点将生意搅黄。我听完后非常诧异，怎么与甲说的完全不一样啊。后又找其他几个业务员核实，乙业务员说的基本属实。唉，通告已经张贴了，这可如何是好？于是一通补救并制定相应规章制度避免以后类似情况发生。过后反思：当初为什么不调查一下再做决定呢？如果乙业务员性格内向些没准不找我申辩直接开路走人了，这对公司损失更大而且公司其他员工又会有何想法呀。再回想最近经常快速做出一些鲁莽的决定，非常后悔，看来官僚的口头禅：这个问题要考虑考虑研究研究确有其道理。过去的皇帝金口玉言，说的话不能随便改，今天的公司老板也不能不过脑子不全面调查随口做决定，否则天天朝令夕改威信尽失。&lt;br /&gt;现在员工找我解决问题我一般都说：行，我知道了，等我查一下，几天之内给你回复。这样类似错误就很少发生了。看来做事不能只图一时痛快，要全面考虑，职位越高越应避免当场做出决定。要不怎么很多人感觉大公司办事反应慢，估计如果大公司反应都向个体户一样快很快大公司也就变成个体户了。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;13.政策的制定&lt;br /&gt;经过几年的努力，公司终于拿到某个著名品牌在北京的代理权，我非常高兴。为完成该品牌在北京全年的销售任务，公司召开销售会议，在会上，我详细给销售部每个员工布置了任务，订好全年的销售目标。&lt;br /&gt;三个月过去了，公司代理品牌的销量未能达到年初制定的季度销售目标，什么原因呢？公司整体销售不错呀，只是所销售产品品牌比较分散，难道是业务员不擅长销售主打产品？销售培训没跟上？&lt;br /&gt;偶尔听到业务员之间的对话让我解开了谜团。&lt;br /&gt;下班后，我正准备走，听到门外两个业务员在聊天.&lt;br /&gt;甲业务员：&amp;#8220;今天你卖得不错呀，一单就走了5万多。哎你为什么不推咱主打产品呀？&amp;#8221;&lt;br /&gt;乙业务员：&amp;#8220;顾客用惯了另一个牌子，再说卖那一个牌子利润多500元，我的提成不也能多一百多吗。&amp;#8221;&lt;br /&gt;原来如此。按说乙业务员不仅是公司骨干而且还是公司小股东，他尚且如此，更别说其他业务员了。&lt;br /&gt;我反省了半天，错误还在我。卖主打产品虽说有时眼前利润可能稍小，但如果考虑售后服务成本及完成任务后厂家的各种促销支持还是利大于弊的，关键是这些员工并不关心，他们只关心自己的收益，毕竟人的本性是自私的（呵呵，不符合主旋律，不和谐），还是公司的销售政策没定好。&lt;br /&gt;第二天，我重新制定了销售奖励政策，向主打产品倾斜，凡销售主打产品不光有利润提成，还有流水提成，而且每季度如完不成主打产品流水任务将影响该季度的季度奖。政策一改，立竿见影，当年第二季度主打产品销量顺利完成。&lt;br /&gt;一般来说，公司员工的利益与公司老板的利益是不一致的，二者之间经常会有冲突。指望公司员工牺牲个人利益去成全公司利益基本上是天方夜谭。但老板有老板的优势，老板是公司政策的制定者，他可以利用人趋利避害的本性制定政策，将公司员工利益尽量与公司利益统一起来，让二者一荣俱荣，一损俱损。这样根本不需要做思想工作，员工自己就朝着老板希望的方向使劲了。就像古代大禹治水一样，疏导为主，堵塞为辅。一个明智的政策必须符合人的本性，所有那些假大空的言论都应该被摒弃。有些领导（包括我原来就经常想少发奖金，多给员工讲人生哲理）在台上给员工做报告大道理一套一套，说的话有时自己都不信，现在谁比谁傻呀，无利可图，政策不对头再讲大道理也没用。上个世纪农村实行土地承包制改革，一包就灵，归根到底还是因为政策终于符合了人的本性。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　14.矬子里拔将军&lt;br /&gt;公司销售部很长一段时间没有主管，十几个业务员都由我来管，不是我不想设立主管，而是觉得部门里几个骨干能力差不多，没有特别突出的，并且由于行业的限制及所制定的销售政策决定了每个业务员基本上都是单打独斗，相互之间合作很少，日子长了大家都变得比较自私。而其他员工能力与骨干员工比差的比较多，流动性也比较大，因此销售部无部门负责人。&lt;br /&gt;于是每天我除了与其他几个部门经理沟通外还得对销售部十来个人事无巨细进行管理，烦死我了。销售部有事与其他部门协调时由于本部门无主管，其他部门经理经常不买账。地位不对等呀，于是又来找我，唉。&lt;br /&gt;实在难以忍受，矬子里拔将军也得提拔一个销售部主管。&lt;br /&gt;于是制定提拔标准，再根据业绩，能力，与其他同事相处是否融洽等考核，终于选出了一个主管，虽然不是很理想，一边干一边培养吧。&lt;br /&gt;一年过去了，主管并不十分出彩，但日常事务倒也管得井井有条。原来公司到货时需要卸车，销售部公共区域卫生需要打扫，节假日值班安排等头疼的事都需要我亲自去指派，有时还得又唱红脸又唱黑脸。现在好了，有主管了，既然每月多拿几百元岗位津贴当然就得承担更多责任，食君俸禄为君分忧吗，我只要找到销售主管，让他安排就行了。此外如联系厂家安排新产品培训，与其他部门协调等工作我都交给销售主管去做，一年也未出什么大错。看来有个平凡的主管也比没有强呀。人的能力不是天生的，就像蜜蜂一样，刚出生时大家都一样，只要从小喂它蜂王浆，按蜂王培养，它就能成长为蜂王。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　15.有些事情越透明越好&lt;br /&gt;但凡老板，公布各种销售政策时基本都会对商品的实际成本有所保留，无论是对公司员工还是合作伙伴或下级经销商，老板一般都不交实底。&lt;br /&gt;2006年我们因业务发展需要在北京周边的一个城市设立了分公司，分公司是采取收购当地一个合作伙伴部分股份，我公司派驻骨干员工的形式开办的，当地合作伙伴公司的老板马总继续当总经理,负责日常经营。由于对方是一个成熟的盈利企业，所以不用担心新开公司第一二年会赔本的问题。当初合作时大家商定：分公司作为我公司所代理某项产品在当地唯一经销商，享受我公司从厂家进货相同底价及同样的各类促销政策，接受总公司各类业务业务指导，年底分公司利润双方按股份比例分红。&lt;br /&gt;一切走上正轨之后，我将与分公司合作的各项业务交由公司管理渠道的副总经理老何负责，直到年底，相安无事。&lt;br /&gt;第二年，矛盾出现了。由于分公司从总公司进货需要开增值税票，而且每次都需总公司派车将货物从厂家库房提出送到货运站再发至分公司所在城市，这就会产生很大一笔物流和税务方面的费用。&lt;br /&gt;老何考虑到费用没地方出，于是在新的一年给分公司发产品报价及厂家政策时暗自留了2%。没有不透风的墙，分公司马总在这行业里经营多年，与全国各地经销商都有联系，不到一个月，就看出了老何所提供的销售政策有问题。在一次厂家的销售会议上，马总找老何对质，老何当然极力掩饰，两人几乎翻脸。&lt;br /&gt;马总对老何彻底失去信任，直接找到我，提出这个问题如不解决，双方无法继续合作。&lt;br /&gt;我好言安抚，将与厂家签订的本年度代理协议原件和盘托出，同时将从厂家库房提货及发货的费用，资金占用费用，仓储费，开发票所需交的税等详细列了个清单逐一计算，计算结果大致为流水的2%。马总看完后心里顺了气，坦言只要在厂家销售底价及政策上对他不加隐瞒，这2%的费用他完全能够理解并接受。我接着承诺利用双方合作销量大的优势向厂家申请争取更多额外的销售支持，一定让分公司享受到比自己做更优惠的价格及政策。马总满意而归，一场纠纷烟消云散。我想：其实合作伙伴所要求的只是一个知情权，一个平等了解厂家真实销售政策的权利。&lt;br /&gt;在通讯极其发达的今天，几乎很难保守什么秘密。那种城南布头便宜两毛城北半个月不知道的情况再也不会出现了。只要不涉及个人隐私不影响公司根本利益，我公司各项事务基本都是透明的。商品的底价向所有业务员公开，只是事先向他们说明物流仓储税金等各项费用的计算摊销方法，规定销售最低价，其他一概由业务员自己做主，这样不仅增强了员工与公司双方之间的相互信任而且简化了很多销售中间环节，提高了反应速度。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;16.发劳保用品&lt;br /&gt;刚成立公司时，习惯了国营单位那一套，时不时在过节时发点劳保用品，饮料食用油之类，每回公司派车采购回来，乱哄哄一阵忙，员工每人拿到手后有的用自行车驮，有的打车，还有的零打碎敲往家拿。后来公司人逐渐增多，业务也忙了就逐渐停止发劳保用品了。&lt;br /&gt;去年春节前去一个朋友公司，正赶上他们过节前发东西，每个员工两大捆卫生纸，一小桶食用油，几大桶可乐，一箱芦柑。十几个员工每人前面一小堆，不少人正发愁怎样往家拿，打个车吧不值，坐公共汽车吧又拿不了。&lt;br /&gt;我进了朋友办公室，他正在算账呢。见我进来嘿嘿一乐，对我说：&lt;br /&gt;&amp;#8220;看我们公司热闹吧，正发过节的东西呢。&amp;#8221;&lt;br /&gt;我问他：&amp;#8220;发那些东西干嘛，又不好拿。&amp;#8221;&lt;br /&gt;朋友故作高深地对我说：&lt;br /&gt;&amp;#8220;这你就不明白了吧，我过节发这些东西让员工拿回家，员工家属一看就觉得咱公司福利待遇好，员工多有面子啊，这些东西摊到每人头上才一百多元看起来又一大堆，多合算呀。&amp;#8221;&lt;br /&gt;我又问他：&amp;#8220;你公司员工不一直嚷嚷要上劳动保险吗？有钱你还不如把保险给员工上了&amp;#8221;&lt;br /&gt;&amp;#8220;谁上那个呀，每人每月公司要多负担好几百元。&amp;#8221;&lt;br /&gt;节后，朋友公司的业务骨干走了不少。&lt;br /&gt;三月份我公司招聘，应聘人员中就有一个曾经在朋友公司干过。&lt;br /&gt;我问他：&amp;#8220;你为什么离职呀，原来公司不是挺好的，过节还发东西哪。&amp;#8221;&lt;br /&gt;他不屑一顾：&amp;#8220;就那点东西，加起来也就百十来块，蒙谁呀。劳动保险不给上，年底奖金不兑现，老板算得也太精了。&amp;#8221;&lt;br /&gt;听了这话，我不禁汗颜，早几年发劳保用品时我内心深处也想着能省点奖金什么的，  那时员工私下不定怎么发牢骚呢。&lt;br /&gt;现在这社会，谁比谁傻呀，老板知道卫生纸不值钱员工一样也知道，商品供过于求，超市要啥有啥，明码标价。当老板的做决定时最好还是站在员工角度考虑考虑，这样才能尽量少犯低级错误。否则老觉得自己比别人聪明早晚要摔跟头。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;17.财务制度之签字与凭证&lt;br /&gt;几年前的一天，我正在座位上改广告稿，忽听到财务室传来争吵的声音，不一会，出纳小丽与业务员小马脸红脖子粗地走到我跟前。小马说：&lt;br /&gt;&amp;#8220;上周五我把一张三千元的支票交给小丽，今天会计又让我交货款，我说交给小丽了，可小丽不承认。&amp;#8221;&lt;br /&gt;小丽委屈地直掉眼泪：&amp;#8220;我根本就没收到那张支票，我刚翻遍了所有的票夹，又查了银行对账单，根本就没有。&amp;#8221;&lt;br /&gt;小马说：&amp;#8220;我明明放到小丽桌上，怎么会没有呢!&amp;#8221;&lt;br /&gt;小丽说：&amp;#8220;经理您可以问问财务室的人，他们都能证明我绝对没收过小马的支票。&amp;#8221;&lt;br /&gt;一场糊涂官司，吵得我头都大了。&lt;br /&gt;我说：&amp;#8220;再去财务室仔细找找，墙角柜子后面桌子低下都翻翻。&amp;#8221;&lt;br /&gt;10分钟后，财务室传来一阵欢呼，支票从两张桌子的夹缝中找到了。&lt;br /&gt;这件事对我触动很大，财物流程还有漏洞，万一这张支票找不到，算谁的责任？真让我判断，我也无法决定。一直以来，公司对现金的管理比较严格，凡业务员交回现金，都由当班出纳现场收好并验明真伪，然后开具现金收据交给业务员，收据上写明金额，交款人，客户名称，日期并由交款人签字确认。业务员将收据的一联交给会计做账，会计每天根据现金收据对公司现金结存进行盘点。现金方面这些年从未出过差错。但对支票的管理相对松懈，一般就是由业务员交给当班出纳完事。&lt;br /&gt;在这件事发生以后，公司立刻修改流程，规定凡当班出纳收到业务员交回的支票后，必须在业务员工作单上签字确认，而业务员事先也须在工作单上注明所交支票的支票号及金额，如有纠纷，随时备查，这样一环套一环，责任明确了，就很难再发生类似纠纷了。&lt;br /&gt;总结这些年的教训，我觉得办公司，财务制度一定要健全并被严格执行，公司大了，人员素质参差不齐，如果财务制度上有漏洞，难免有人会加以利用并非法得利，这样不仅公司利益受到损失，而且起了一个坏的带头作用，其他员工会觉得自己不利用公司财务漏洞相对来说就是吃亏，如此下去公司风气越来越坏，老板到时哭都来不急了。千里长堤溃于蚁穴，任何小的财务漏洞都应予以弥补。同时，原始凭证亦极为重要，好脑子不如烂笔头，谁也不可能记住半年一年前每一笔花销的细节，而一张规范的原始凭证正好可以弥补这一点。财务制度及规范自有他的道理，有时看起来连老板的自由也限制了，但财务人员是否配齐，财务制度是否健全正是做企业和干个体户的重要区别之一，当我们从单干或夫妻店发展到三五个人的时候，这一环节是无论如何也绕不过去的。可惜当初自己比较愚笨不懂这些，也没有过来人给我指点迷津，所以创业之初我走了不少弯路，要不早发财了。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;18.关于股份制，分红与年终奖&lt;br /&gt;各公司搞股份制方法是不一样的。上市公司的股价怎样计算怎样转让我也不太明白，估计大家都得考虑公司固定资产，流动资金，年盈利能力，无形资产，市盈率，负债率等几方面吧。&lt;br /&gt;我公司员工入股，什么无形资产，市盈率等都未计算在内，老板让利，员工实实在在得到实惠。我们只算公司的净资产。每年年底会计出张报表，列清楚公司的固定资产，流动资金，应收应付，待摊折旧，当年利润，费用税金等等，明明白白，对于希望入股的骨干员工全部公开。因为平常员工对我十分信任，大部分人连报表看都不看，只要明白公司净资产值多少钱，投资入股后每年大概的分红比例和增值比例就满意了。当然正规的方法应该让第三方会计师事务所进行资产评估并出具报告，但员工都认为没必要我也就乐得省事。员工入股后，公司给每个人一张收据，写清楚该员工出资金额，再与每个股东签订一份入股协议，写清楚员工实际出资金额，占公司总股份百分比，每年分红方案，双方权益责任，退股方法等等，双方签字盖章，各留一份，一切OK。至于五年后如员工想要退股，我们定的是或者按当时公司净资产计算股价赎回，或者按员工实际投资额的三倍赎回。现在公司第一批股东入股时间早已超过五年了，由于公司发展不错，还未发生退股现象。&lt;br /&gt;入股时我发现一个现象：销售部员工入股最积极，财务部员工入股最消极。这大概与两个部门员工日常工作性质与看问题方法有关吧。销售人员做事总是比较积极冲动，容易只注意事情有利的一面，忽视不利的一面。财务人员做事比较谨慎，看问题容易忽视积极的一面，只看到消极的一面。所以在公司每当做重大决定时我经常同时听取这两个部门的意见，并在不同意见当中权衡协调。&lt;br /&gt;蒙牛老板牛根生说的好：财聚人散，财散人聚。将公司股份分一部分给员工不仅留住了人才，而且还能激励员工更好地为公司工作，因为给员工股份的同时也赋予了员工相应的责任，当老板将公司50%以上股份分给公司员工时他一定感觉到肩上的担子轻了不止50%，每年他就能踏踏实实地陪家人放松度假去了。其实公司老板控股并不一定要占公司50%以上股份，如果其他小股东每人所占公司股份比例都不到5%那老板股份只要占到公司总股份的20%至30%就已经是公司绝对大股东了，当老板总不至于当到公司所有小股东都团结起来发对你吧。&lt;br /&gt;头些年我每年将公司当年盈利的30%用于分红，虽然总数不少，但对于小股东来说，有些不疼不痒。近两年听取高人建议，一方面公司自有资金目前足够支撑日常运转，另一方面最近通货膨胀率太高，我索性将年底分红的比例提高到当年净利润的60%，消息一公布，公司小股东乐得嘴都合不拢了，一些原来犹豫的员工也纷纷向我打听入股的事。&lt;br /&gt;年终奖从前一向是我亲自分配，现在公司人多了，我不可能了解公司每个员工在这一年里的工作细节，因此，公司就根据当年效益定个年终奖总数，我再根据年终奖总数及各部门贡献和部门人数按比例分配到各个部门，让各部门经理与人力资源经理参照考核标准分配到每个员工，最后我只要根据每个部门这一年的工作业绩评定部门经理的年终奖就可以了。&lt;br /&gt;以前年底分红与年终奖财务上都是作为费用在第二年按月摊销，方法不甚科学，现改为当年按月计提，每月在利润中将这部分费用预留出来，这样年底发奖金时就能做到心中有数，每部门在计算年终奖总数时也有依据了。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　19.关于涨工资&lt;br /&gt;想起这个问题我就头疼，这两年物价上涨厉害，通货膨胀率很高，垄断行业及国家公务员纷纷大张旗鼓地涨工资，公司员工也不时议论纷纷，经常问我：&amp;#8220;老板，咱什么时候涨工资呀。&amp;#8221;&lt;br /&gt;我也想给大家涨工资，但我们所在行业销售的产品偏偏每年都在不停地降价，利润空间越来越薄，而且由于需要给每个员工上五险一金，公司的用人成本每人每年比几年前增加了近万元，只不过增加的部分没发到员工手里，一般员工看不见。唉，地主家里也没有余粮啊。&lt;br /&gt;管理书上经常说：要给员工树立远大理想，创造发展空间，制定个人职业规划，分析公司现状及长远规划，激励团队精神，激发员工士气。通过这些年的实践，我发现要完美做到以上几点真的很难，我自己就不善言辞，给员工做报告更不是我的长项。再说光有精神力量缺乏物质奖励管得了一时管不了一世。涨工资的问题不可回避。&lt;br /&gt;除股东外的大部分普通员工对于公司的经营困境并不感兴趣，员工认为公司经营不好是老板没本事，我的工资该涨还得涨，如果涨不到我满意的程度，那么我就用脚投票，只要找到比现在收入高的职位就拜拜走人。&lt;br /&gt;既然这个问题回避不了，就得想法解决。根据二八法则，公司80%的利润都是由20%的骨干员工创造的，因此公司的首要问题就是留住这20%的骨干员工。给20%的员工涨工资公司还是负担得起。另外80%的普通员工工资根据工作年限适当调整，多做思想工作，如果还不行就一切随缘吧。通过近几年的情况看，85%的骨干员工比较稳定，公司经营没有产生大的波折。&lt;br /&gt;公司有一个部门，一共有三名员工：张师傅，王师傅，李师傅。来公司前三人全是国营单位下岗职工，其中张师傅来公司六七年了，比较踏实肯干，王师傅来公司四五年，中规中矩，李师傅来公司两年，工作中有时爱偷懒，经常发牢骚。这天，李师傅找我说：&amp;#8220;经理，我们部门工资好久没涨了，师傅们平常工作都很辛苦，您看是不是意思意思，工资往上涨涨，要不该影响工作积极性了。我跟几位师傅合计了一下，想找个时间和您一块开个会讨论一下。&amp;#8221;&lt;br /&gt;我一听，明白了，这李师傅私下准做好了部门其他人工作，想要一起向我发难呢。此风不可长，否则公司人人都学他岂不乱套了，再说该部门平均工资在同行业里已高于平均水平。于是我回答道：&lt;br /&gt;&amp;#8220;这两天我很忙，要不后天下班咱们开个会吧。&amp;#8221;&lt;br /&gt;&amp;#8220;好嘞。&amp;#8221;李师傅笑了。&lt;br /&gt;第二天，我找了个机会将张师傅叫进办公室，先聊了聊家常，对他的日常工作予以肯定，然后对他说鉴于他工作一向比较努力，从下月起每季度给他单独增发一部分季度奖，但这额外奖励只有他一人有，希望他保密，最后问他对该部门现有工资的看法。他说：&lt;br /&gt;&amp;#8220;经理，其实我觉得现有工资也差不多了，当然对于工龄长的老员工稍微有点低，您给我涨了季度奖后我就很满足了。我保证好好干！&amp;#8221;&lt;br /&gt;下午快下班时，我又将王师傅叫进了办公室。同样，先聊了会家常，然后我对王师傅说：&lt;br /&gt;&amp;#8220;今年公司盈利方面比较困难，可能暂时无法都涨工资。由于业务量下降，你们部门估计很快需要精简一个人，另外两个人会比较忙一些，公司在年终奖上会有所考虑，对留下的二人适当增加。你对此有什么好的建议？&amp;#8221;&lt;br /&gt;王师傅考虑了下说：&amp;#8220;经理，我明白了。我觉得目前的工资还行，涨工资的事等公司利润增加时您自然会考虑。我没的说，该怎么干还怎么干。&amp;#8221;&lt;br /&gt;第三天下班时，会议如期举行。&lt;br /&gt;首先，李师傅先发言：&amp;#8220;经理，我们三个师傅商量了下，都觉得目前的工资水平比较低，公司是不是考虑给涨涨，要不该影响大家工作积极性，这不对公司也不好吗。&amp;#8221;&lt;br /&gt;我说：&amp;#8220;目前的你们部门的工资在同行业里已经算比较高的，今年市场环境不好，公司正在调整，又上了新的项目，估计利润会比去年少一些，希望大家克服一下，等公司利润增加后大家工资都会增加。&amp;#8221;&lt;br /&gt;李师傅很不高兴：&amp;#8220;经理，公司利润的事是公司经理考虑的事，跟我们没关系。一个公司利润下降是老板没本事，员工工资不应受影响，该涨还得涨。再说我们出来打工不就图个挣钱吗，发多少钱我们就干多少活，是不是二位师傅？&amp;#8221;李师傅转头问其他人。&lt;br /&gt;张师傅和王师傅什么表情也没有，一言不发。&lt;br /&gt;会议又进行了二十分钟，基本是我解释几句，李师傅慷慨激昂几句。突然，张师傅说：&amp;#8220;经理，我想起来了，还一个活今天必须干完，我得马上走。&amp;#8221;&lt;br /&gt;&amp;#8220;行，辛苦了，您去吧。&amp;#8221;我回答。&lt;br /&gt;&amp;#8220;经理，&amp;#8221;王师傅趁机也说：&amp;#8220;我闹肚子，得去上个厕所。&amp;#8221;&lt;br /&gt;&amp;#8220;去吧，去吧，上厕所能不批吗。&amp;#8221;我说到。&lt;br /&gt;一瞬间，除我之外，只剩下目瞪口呆的李师傅坐在会议桌前。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　20.充分运用科技手段进行管理&lt;br /&gt;现代科技日新月异，解决了不少管理上的难题。&lt;br /&gt;公司刚成立时，上下班考勤是靠考勤员来记录的，但这存在很多问题：首先，无法保证考勤员自己每天按时上下班，其次，考勤员请假时公司没人接替负责记录考勤，再者考勤员与公司其他员工关系有近有远，谁也不能保证考勤员一年365日天天公正无私。&lt;br /&gt;九十年代后期，打卡钟逐渐普及，公司也购买了一个打卡钟，放在公司门口，员工上班或下班时拿自己的考勤卡在打卡钟上打印个时间，月底人事部一统计一目了然。可随后马上出现了代打卡现象，关系好的员工互相帮忙代打卡，虽然公司每回抓着代打卡的都会重罚，但仍屡禁不止。&lt;br /&gt;进入新世纪指纹技术渐渐成熟，公司只花几百元买了一个指纹考勤机就彻底解决了以上问题。&lt;br /&gt;到目前为止，公司还未发生员工互相借手指头帮忙输入指纹的现象。&lt;br /&gt;随着公司销售网点逐渐增多，办公地点越来越分散，管理起来也日渐麻烦。有时某种商品甲门市积压半年卖不出去，乙门市接着用户订单又重新进货，门市之间信息相互沟通不畅。&lt;br /&gt;四五年前，公司花重金购买了网络版财务软件，使公司各门市，北京总公司与外地分公司之间做到了实时沟通。公司所有库存商品一目了然，每个业务员的每笔业务随时可查，应收应付账款明明白白，各类报表随要随有，我再也不用老问会计：现在库存多少？账上还剩多少钱？某某某这月销售额多少了？只要有台能上网的电脑，无论何时何地，动动手指头，我所需要的数据立即就会出现在眼前。&lt;br /&gt;最近为了提高售后服务部门接电话的质量，减少与客户的纠纷，公司在集团电话上加装了录音卡，每天所有的呼入呼出电话全部录音，售后服务部门的客服人员定期开会听电话录音，分析每人接电话的优缺点，大家一起讨论提高。过了一段时间，我发现不仅客服人员接电话水平有所提高，而且公司电话费也节省不少，大概电话一录音员工不好意思再用公司电话打私人电话了吧，真是一举两得。&lt;br /&gt;运用科技手段管理公司，不仅效率大为提高，而且能尽量避免各种人为因素所引起的偏差。现在人工成本越来越高，购买先进设备代替人来完成工作对公司来说是个节省成本的好方法。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;　21.从结果管理到过程管理&lt;br /&gt;一直以来，公司基本上采用的都是结果管理，每年年初定好这一年的各项任务指标，然后再根据公司总的年任务向下分配到各个部门，部门继续向下分配到每个人，每个人将一年的任务参考上一年的历史情况细分到新一年的每个月，公司依据每人每月的任务制定考核标准。每月月初财务部汇总算出上月各员工的实际完成任务情况，将报表交到部门经理和总经理处，经理研究完上月报表再制定新的政策并对未完成任务员工进行个别辅导或调整。以上传统方法按部就班，比较可行，但由于目前竞争越来越激烈，市场变化加快，公司原有的管理方法有点跟不上竞争对手的节奏。如果问题在本月初出现，下月初才能反应到报表上，经理根据报表修改销售政策在开会布置下去，40天已经过去了，有时候40天足以把小问题拖成大问题。&lt;br /&gt;前一段时间了解了戴尔对销售部的管理方法，戴尔刚开始也是对销售人员一月一考核，后改为一周一考核，最后改为一日一考核。每天晚上，销售主管将销售人员的当日销售报表收上来后分析总结，完成任务的OK，完不成任务的挨个留下来单独辅导，分析失败原因，制定新的行动方案，规划第二天的任务，第二天晚上再对前一天制定的方案进行总结考核并重新制定下一天的方案。这样改进之后，戴尔销售部的业绩大为提高，当然，销售人员也快被逼疯了，据说很少有人能在戴尔销售部门忍受三年以上。&lt;br /&gt;他山之石可以攻玉，虽然目前我公司要做到一天一考核还有点不现实，但做到每周一考核还是可以的。于是我们将业务部门的报表改为一周一汇总，每周一必须将上周每人的业务开展情况及任务实际完成情况总结并核实，对于异常现象立刻采取措施，对于任务完成较差的员工马上单独交流，弄清原因，及时解决问题。新措施实行了一段时间后，我感觉公司对市场反应速度大大提高了，对业务方面的实际情况各级经理也基本做到心里有底，当月问题不必积压到下月初才被发现解决了。&lt;br /&gt;我一直在琢磨，是否非业务部门也可采取过程管理呢，这样公司整体反应速度将大为提高，各种问题就会被及时反应出来并得到解决，执行力也会大为加强。不过，非业务部门由于没有具体数字硬指标考核，要想达到过程管理的要求估计比较费时费力。&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/1977426.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2011/03/08/1977426.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2011/02/17/1956679.html</id><title type="text">项目管理：怎样做需求分析</title><summary type="text">如果将需求分析阶段的工作归结为编写需求规格说明书，这种简化的做法往往是导致项目后期层出不穷问题的罪魁祸首。建议采用以下步骤形成软件需求：获取用户需求→分析用户需求→编写需求文档→评审需求文档→管理需求。下面我们先来讨论前两个步骤（获取用户需求、分析用户需求）的做法。获取用户需求这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动（如图1所示）。●了解客户方的所有用户类型以及潜在的类型。然后，根据他们的要求来确定系统的整体目标和系统的工作范围。●对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是，每一次交流一定要有记录，对于交</summary><published>2011-02-17T02:14:00Z</published><updated>2011-02-17T02:14:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2011/02/17/1956679.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2011/02/17/1956679.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: Arial; font-size: 12px; line-height: 18px; "&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;如果将需求分析阶段的工作归结为编写需求规格说明书，这种简化的做法往往是导致项目后期层出不穷问题的罪魁祸首。建议采用以下步骤形成软件需求：获取用户需求&amp;#8594;分析用户需求&amp;#8594;编写需求文档&amp;#8594;评审需求文档&amp;#8594;管理需求。下面我们先来讨论前两个步骤（获取用户需求、分析用户需求）的做法。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　获取用户需求&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动（如图1所示）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;了解客户方的所有用户类型以及潜在的类型。然后，根据他们的要求来确定系统的整体目标和系统的工作范围。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是，每一次交流一定要有记录，对于交流的结果还可以进行分类，便于后续的分析活动。例如，可以将需求细分为功能需求、非功能需求（如响应时间、平均无故障工作时间、自动恢复时间等）、环境限制、设计约束等类型。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;需求分析人员对收集到的用户需求做进一步的分析和整理。下面是几条常见的准则：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9332;对于用户提出的每个需求都要知道&amp;#8220;为什么&amp;#8221;，并判断用户提出的需求是否有充足的理由；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;img border="0" src="http://www.leadge.com/siteadmin/ewebeditor/uploadfile/IMAGE/2011-02-15/20110215160351850.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;图1&amp;nbsp;获取用户需求的活动&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9333;将那种以&amp;#8220;如何实现&amp;#8221;的表述方式转换为&amp;#8220;实现什么&amp;#8221;的方式，因为需求分析阶段关注的目标是&amp;#8220;做什么&amp;#8221;，而不是&amp;#8220;怎么做&amp;#8221;；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9334;分析由用户需求衍生出的隐含需求，并识别用户没有明确提出来的隐含需求（有可能是实现用户需求的前提条件），这一点往往容易忽略掉，经常因为对隐含需求考虑得不够充分而引起需求变更。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。需求分析人员在这个任务中需要执行下述活动：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9332;明确标识出那些未确定的需求项（在需求分析初期往往有很多这样的待定项）；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9333;使需求符合系统的整体目标；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9334;保证需求项之间的一致性，解决需求项之间可能存在的冲突。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　分析用户需求&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　在很多情形下，分析用户需求是与获取用户需求并行的，主要通过建立模型的方式来描述用户的需求，为客户、用户、开发方等不同参与方提供一个交流的渠道。这些模型是对需求的抽象，以可视化的方式提供一个易于沟通的桥梁。用户需求的分析与获取用户需求有着相似的步骤，区别在于分析用户需求时使用模型来描述，以获取用户更明确的需求。分析用户需求需要执行下列活动：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;以图形表示的方式描述系统的整体结构，包括系统的边界与接口；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;通过原型、页面流或其它方式向用户提供可视化的界面，用户可以对需求做出自己的评价；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;系统可行性分析，需求实现的技术可行性、环境分析、费用分析、时间分析等；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;以模型描述系统的功能项、数据实体、外部实体、实体之间的关系、实体之间的状态转换等方面的内容。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;img border="0" src="http://www.leadge.com/siteadmin/ewebeditor/uploadfile/IMAGE/2011-02-15/20110215160423131.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;图2&amp;nbsp;DFD示意图&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　用于需求建模的方法有很多种，最常用的包括数据流图（DFD）、实体关系图（ERD）和用例图（Use&amp;nbsp;Case）三种方式。DFD作为结构化系统分析与设计的主要方法，已经得到了广泛的应用，DFD尤其适用于MIS系统的表述。DFD使用四种基本元素来描述系统的行为，过程、实体、数据流和数据存储。DFD方法直观易懂，使用者可以方便地得到系统的逻辑模型和物理模型，但是从DFD图中无法判断活动的时序关系。图2描述的是某个项目的DFD示意图。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　ERD方法用于描述系统实体间的对应关系，需求分析阶段使用ERD描述系统中实体的逻辑关系，在设计阶段则使用ERD描述物理表之间的关系。需求分析阶段使用ERD来描述现实世界中的对象。ERD只关注系统中数据间的关系，而缺乏对系统功能的描述。如果将ERD与DFD两种方法相结合，则可以更准确地描述系统的需求。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　在面向对象分析的方法中通常使用Use&amp;nbsp;Case来获取软件的需求。Use&amp;nbsp;Case通过描述&amp;#8220;系统&amp;#8221;和&amp;#8220;活动者&amp;#8221;之间的交互来描述系统的行为。通过分解系统目标，Use&amp;nbsp;Case描述活动者为了实现这些目标而执行的所有步骤。Use&amp;nbsp;Case方法最主要的优点，在于它是用户导向的，用户可以根据自己所对应的Use&amp;nbsp;Case来不断细化自己的需求。此外，使用Use&amp;nbsp;Case还可以方便地得到系统功能的测试用例。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　介绍了需求分析五个步骤中的前两个步骤（获取用户需求、分析用户需求），继续介绍后三个步骤（编写需求文档、评审需求文档、管理需求），并与大家讨论相关实践问题。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　1、编写需求文档&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　需求文档可以使用自然语言或形式化语言来描述，还可以添加图形的表述方式和模型表征的方式。需求文档应该包括用户的所有需求（功能性需求和非功能性需求）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　2、评审需求文档&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　需求文档完成后，需要经过正式评审，以便作为下一阶段工作的基础。一般的评审分为用户评审和同行评审两类。用户和开发方对于软件项目内容的描述，是以需求规格说明书作为基础的；用户验收的标准则是依据需求规格说明书中的内容来制订，所以评审需求文档时用户的意见是第一位的。而同行评审的目的，是在软件项目初期发现那些潜在的缺陷或错误，避免这些错误和缺陷遗漏到项目的后续阶段。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;3、管理需求&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;img border="0" src="http://www.leadge.com/siteadmin/ewebeditor/uploadfile/IMAGE/2011-02-15/20110215160445484.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;项目管理：怎样做需求分析&amp;nbsp;收藏&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;如果将需求分析阶段的工作归结为编写需求规格说明书，这种简化的做法往往是导致项目后期层出不穷问题的罪魁祸首。建议采用以下步骤形成软件需求：获取用户需求&amp;#8594;分析用户需求&amp;#8594;编写需求文档&amp;#8594;评审需求文档&amp;#8594;管理需求。下面我们先来讨论前两个步骤（获取用户需求、分析用户需求）的做法。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　获取用户需求&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动（如图1所示）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;了解客户方的所有用户类型以及潜在的类型。然后，根据他们的要求来确定系统的整体目标和系统的工作范围。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是，每一次交流一定要有记录，对于交流的结果还可以进行分类，便于后续的分析活动。例如，可以将需求细分为功能需求、非功能需求（如响应时间、平均无故障工作时间、自动恢复时间等）、环境限制、设计约束等类型。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;需求分析人员对收集到的用户需求做进一步的分析和整理。下面是几条常见的准则：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9332;对于用户提出的每个需求都要知道&amp;#8220;为什么&amp;#8221;，并判断用户提出的需求是否有充足的理由；&amp;nbsp;　&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　图1&amp;nbsp;获取用户需求的活动&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9333;将那种以&amp;#8220;如何实现&amp;#8221;的表述方式转换为&amp;#8220;实现什么&amp;#8221;的方式，因为需求分析阶段关注的目标是&amp;#8220;做什么&amp;#8221;，而不是&amp;#8220;怎么做&amp;#8221;；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9334;分析由用户需求衍生出的隐含需求，并识别用户没有明确提出来的隐含需求（有可能是实现用户需求的前提条件），这一点往往容易忽略掉，经常因为对隐含需求考虑得不够充分而引起需求变更。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。需求分析人员在这个任务中需要执行下述活动：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9332;明确标识出那些未确定的需求项（在需求分析初期往往有很多这样的待定项）；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9333;使需求符合系统的整体目标；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9334;保证需求项之间的一致性，解决需求项之间可能存在的冲突。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　分析用户需求&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　在很多情形下，分析用户需求是与获取用户需求并行的，主要通过建立模型的方式来描述用户的需求，为客户、用户、开发方等不同参与方提供一个交流的渠道。这些模型是对需求的抽象，以可视化的方式提供一个易于沟通的桥梁。用户需求的分析与获取用户需求有着相似的步骤，区别在于分析用户需求时使用模型来描述，以获取用户更明确的需求。分析用户需求需要执行下列活动：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;以图形表示的方式描述系统的整体结构，包括系统的边界与接口；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;通过原型、页面流或其它方式向用户提供可视化的界面，用户可以对需求做出自己的评价；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;系统可行性分析，需求实现的技术可行性、环境分析、费用分析、时间分析等；&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&amp;#9679;&amp;nbsp;以模型描述系统的功能项、数据实体、外部实体、实体之间的关系、实体之间的状态转换等方面的内容。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　图2&amp;nbsp;DFD示意图&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　用于需求建模的方法有很多种，最常用的包括数据流图（DFD）、实体关系图（ERD）和用例图（Use&amp;nbsp;Case）三种方式。DFD作为结构化系统分析与设计的主要方法，已经得到了广泛的应用，DFD尤其适用于MIS系统的表述。DFD使用四种基本元素来描述系统的行为，过程、实体、数据流和数据存储。DFD方法直观易懂，使用者可以方便地得到系统的逻辑模型和物理模型，但是从DFD图中无法判断活动的时序关系。图2描述的是某个项目的DFD示意图。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　ERD方法用于描述系统实体间的对应关系，需求分析阶段使用ERD描述系统中实体的逻辑关系，在设计阶段则使用ERD描述物理表之间的关系。需求分析阶段使用ERD来描述现实世界中的对象。ERD只关注系统中数据间的关系，而缺乏对系统功能的描述。如果将ERD与DFD两种方法相结合，则可以更准确地描述系统的需求。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　在面向对象分析的方法中通常使用Use&amp;nbsp;Case来获取软件的需求。Use&amp;nbsp;Case通过描述&amp;#8220;系统&amp;#8221;和&amp;#8220;活动者&amp;#8221;之间的交互来描述系统的行为。通过分解系统目标，Use&amp;nbsp;Case描述活动者为了实现这些目标而执行的所有步骤。Use&amp;nbsp;Case方法最主要的优点，在于它是用户导向的，用户可以根据自己所对应的Use&amp;nbsp;Case来不断细化自己的需求。此外，使用Use&amp;nbsp;Case还可以方便地得到系统功能的测试用例。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　介绍了需求分析五个步骤中的前两个步骤（获取用户需求、分析用户需求），继续介绍后三个步骤（编写需求文档、评审需求文档、管理需求），并与大家讨论相关实践问题。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　1、编写需求文档&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　需求文档可以使用自然语言或形式化语言来描述，还可以添加图形的表述方式和模型表征的方式。需求文档应该包括用户的所有需求（功能性需求和非功能性需求）。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　2、评审需求文档&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　需求文档完成后，需要经过正式评审，以便作为下一阶段工作的基础。一般的评审分为用户评审和同行评审两类。用户和开发方对于软件项目内容的描述，是以需求规格说明书作为基础的；用户验收的标准则是依据需求规格说明书中的内容来制订，所以评审需求文档时用户的意见是第一位的。而同行评审的目的，是在软件项目初期发现那些潜在的缺陷或错误，避免这些错误和缺陷遗漏到项目的后续阶段。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　3、管理需求&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;图1&amp;nbsp;需求变更流程&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　需求的变更是不可避免的，如何以可控的方式管理软件的需求，对于项目的顺利进行有着重要的意义。如果匆匆忙忙地完成用户调研与分析，则往往意味着不稳定的需求。所以需求管理要保证需求分析各个活动都得到了充分的执行。对于需求变更的管理，则主要使用需求变更流程和需求跟踪矩阵的管理方式。需求变更流程和需求跟踪矩阵分别如&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;图1和图2所示。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;img border="0" src="http://www.leadge.com/siteadmin/ewebeditor/uploadfile/IMAGE/2011-02-15/20110215160518943.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;图2&amp;nbsp;需求跟踪矩阵&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　常见问题及建议&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　Q、客户与最终用户的区别是什么？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　A、可以借助图3来说明它们之间的区别。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;img border="0" src="http://www.leadge.com/siteadmin/ewebeditor/uploadfile/IMAGE/2011-02-15/20110215160529271.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;图3&amp;nbsp;需求获取渠道示意图&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　软件需求来自系统工程与客户两个方面，其中客户是主要的需求提供者（系统工程需求也来自于客户）。客户需要搜集其最终用户的需求并考虑自身的需求，然后再提供给开发方。假如客户并未去认真搜集最终用户的需求，开发方便需要做到这一点，因为系统最终要满足最终用户的需求。&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　Q、如何进行用户访谈？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　A、首先，一定要事先确定访谈的目的和提纲。其次，因为用户往往并不知道应该提供哪些方面的需求，所以需要开发人员引导。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　Q、用户访谈内容是什么？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　A、首先，请用户描述他们如何完成自己当前的工作，并与用户一起抽象出一个工作流程或工作模型。然后，在得到用户的认可后，向用户解释自己是怎样来实现这些功能的，并说明哪些环节可以用自动化方式实现等。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　Q、采用哪一种方式做需求分析最好？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　A、不同的需求分析有不同的特点。还没有哪一种方法可以完全替代别的方法，否则，现在就不会存在不同的需求建模方式了。一般来说，可以使用DFD＋ERD来描述那些功能层次比较清晰的需求；而USE&amp;nbsp;CASE则适于描述功能结构复杂的需求。做需求分析的目的是为了建立需求的模型，不同的子系统有可能使用不同的建模方法。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　Q、怎样做原型，原型的目的是什么？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　A、通常使用原型分析方法来帮助开发方进一步获取用户需求或让用户确认需求。开发方往往先向用户提供一个可视界面作为原型，并在界面上布置必要的元素以演示用户所需要的功能。可以使用第四代语言（例如Visual&amp;nbsp;Basic、Delphi等）来快速生成用户界面，也可以使用FrontPage等网页制作工具来生成用户可视的页面流。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　原型的目的往往是获取需求。但有时也使用原型的方式来验证关键技术或技术难点。对于技术原型，界面则往往被忽略掉。&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/1956679.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2011/02/17/1956679.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2011/01/13/1934412.html</id><title type="text">优秀项目经理必备的8个要素</title><summary type="text">优秀的项目经理要有责任心、要善于沟通、能引导客户、能预测风险、善于总结、随需应变、善于激励团队、同时也要懂技术。 责任心 作为项目经理首先要有责任心。有了责任心，你会把项目当成自己的孩子，倾注你的全部心血。责任，会驱使你关注项目的进度，千方百计去寻找各种资源，推着项目往前走。甚至吃饭、睡觉，走路、坐车，都想着整个项目团队，想着他们还在加班加点，你可能很自然地给他们带点夜宵、冲杯咖啡，犒劳员工。 有了项目经理做表率，整个团队会鼎力支持工作，士气非常高，技术问题也迎刃而解，得到领导称赞和客户肯定，项目将朝着预想的方向发展。 许多开发人员抱怨项目经理一天没干多少事情，而工资还挺高。其实，项目经理一刻</summary><published>2011-01-13T04:05:00Z</published><updated>2011-01-13T04:05:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2011/01/13/1934412.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2011/01/13/1934412.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: Arial; font-size: 12px; line-height: 18px; "&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;优秀的项目经理要有责任心、要善于沟通、能引导客户、能预测风险、善于总结、随需应变、善于激励团队、同时也要懂技术。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;责任心&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;作为项目经理首先要有责任心。有了责任心，你会把项目当成自己的孩子，倾注你的全部心血。责任，会驱使你关注项目的进度，千方百计去寻找各种资源，推着项目往前走。甚至吃饭、睡觉，走路、坐车，都想着整个项目团队，想着他们还在加班加点，你可能很自然地给他们带点夜宵、冲杯咖啡，犒劳员工。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;有了项目经理做表率，整个团队会鼎力支持工作，士气非常高，技术问题也迎刃而解，得到领导称赞和客户肯定，项目将朝着预想的方向发展。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;许多开发人员抱怨项目经理一天没干多少事情，而工资还挺高。其实，项目经理一刻都没闲着，他总在想着怎样更好的执行项目计划，调整项目进度等，脑子一直在不停地运转，所以说项目经理是心累。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;　善于沟通&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;PMBOK(项目管理的知识体系)指出，项目经理75%～90%的时间用在沟通上。沟通无处不在，项目经理要具备良好的沟通能力。如:跟领导报告工作进度、跟客户介绍产品及说明工作成果、跟项目成员交待工作、跟公司内的其它人员争取支持、跟合作厂商协调配合事项等。对项目经理来说，每天大部分的时间是跟人沟通。项目经理上有老板、客户，下有项目组员，属于夹板层，沟通不好，容易出事。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;沟通的关键在于：在什么时间，用什么方式，将什么信息，传达给什么人?特别要强调的是要做好沟通计划。同时，要掌握项目干系人的沟通需求，满足他们的期望!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;当然，沟通的方式有多种，正式的、非正式的。正式的有:各种评审会议、周例会、项目启动会议、项目总结会议等，非正式的如:个人谈话、餐桌上的聊天，MSN聊天等。要结合着使用各种沟通的技巧。有时候，非正式的沟通反而能获得项目的实际信息，尤其是开发人员对项目的期盼、想法和思想。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;引导客户&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;#8220;客户是上帝&amp;#8221;，但客户不一定全对，而且有的时候是错的，尤其在项目还没开发出模型的时候，客户有时根本不知道自己需要什么样的东西。所以，在项目启动会议后，双方要&amp;#8220;把丑话说在前面&amp;#8221;，分清责任。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;项目经理要站在客户的立场，努力满足客户的业务要求，让软件真正为客户创造价值。但是，如果项目经理总被客户牵着鼻子走，就很容易陷入被动的局面，结果是客户的需求一直在变化，造成程序不停地返工，项目总在原地打转，很难推进，久而久之，大家筋疲力尽，积极性严重受挫。最后，项目做得一蹋糊涂!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;开发方和使用方，要讲究&amp;#8220;职位相当&amp;#8221;，要找有话语权、能拍板的客户，统一接口人员，对需求的变更，不能说改就改，要做适当的变更控制，笔者一直建议要做到&amp;#8220;落到纸面上&amp;#8221;，有时需要客户签字确认。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;对于客户提出的需求，项目经理要凭借优秀的技术水平、充沛的业务知识快速估算需求的变更需要多少开发工作量，有没有更好的解决方法。理想的情况是程序基本不做改动，又能满足客户的需要。但笔者往往是采用变通的方法，换一种方式实现客户的需求。这种情况下，需要项目经理对系统结构有全局的认识，尺寸一定拿捏得很准。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;项目经理有时充当白脸、有时是黑脸，但无论如何，一定要维护组员的利益，笔者经常看到很多项目经理有意无意地在客户面前说开发人员的不是，遇到客户不满意的地方，就指责开发人员。这种方法欠妥，笔者一般是跟客户表态，向客户承认&amp;#8220;错误&amp;#8221;，回头再找开发人员讲道理，做到&amp;#8220;内部的问题内部解决&amp;#8221;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;不过，这些年笔者做过很多项目，不少是大型项目，作为项目经理，笔者和客户关系处理得很不错，双方合作很愉快，最后客户变成了朋友。坦诚相待，有礼有节，&amp;#8220;双赢&amp;#8221;是项目经理努力的方向和追求的目标。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;预测风险&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;风险贯穿项目之始终。作为项目经理，必须具有预测风险的能力，如技术储备是否满足项目需要，人员是否充足，项目预算够不够等。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;随着项目的推进，项目经理要预测哪个环节会有风险，并及早采取规避措施。很多风险都是在和客户、和老板的私下接触才能获取的，比如跨年度可能会换领导，国企的当年预算必须当年使用，跨年度将作废等。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;如果项目经理像程序员一样忙于整天的编程，而不关注项目风险的变化，就会很被动，甚至措手不及。记住，风险无处不在，作为项目经理要引起足够的重视，要有风险意识，能预测风险并控制风险。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;善于总结&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;笔者常说，&amp;#8220;总结是为了提高，思考是为了做得更好&amp;#8221;。尤其是年轻的项目经理，经验不太丰富，只能一边做，一边总结，在总结中前进。经历不等于经验，经历总结、沉淀后才能成为自己的经验。孔夫子说的&amp;#8220;吾日三省吾身&amp;#8221;，主要是多用心，经常向经验丰富的前辈请教。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;很多项目经理，尤其是刚开始自己负责项目的项目经理，总把项目的一些过失归咎于外部因素，有时自以为正确，其实，常常犯先入为主的错误。其实要多从自身找原因，勇于自我批评，很多环节可以做得更好。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;随需应变&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;&amp;#8220;凡事预则立，不预则废&amp;#8221;，做任何事情都必须有清晰的目标和计划，以目标为导向。有了计划，项目成员就看到了努力的方向，有&amp;#8220;奔头&amp;#8221;和干劲，唤起员工的工作热情，整个团队士气很高。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;当然，软件这个行业，尤其是做国内项目，因为市场、客户、软件改进等需求，需要调动各种资源，所以即使规模很大的专业化软件公司，也没有一成不变的计划。虽然&amp;#8220;计划赶不上变化&amp;#8221;，但项目经理不要以此为借口而不重视计划的连贯性。做计划要留有适当的缓冲空间，松紧适度，随需应变!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;市场主导研发，研发促进市场。项目的三驾马车:技术、业务、管理，哪个都不能少。项目的三要素:进度、质量、成本，项目经理要牢牢贯彻。有的项目经理没有&amp;#8220;成本&amp;#8221;的概念，一味地追求完美，痴迷于技术，而忘记及时交付，这是软件开发人员的通病。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;　&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;　激励团队&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;项目组就是一个团队，项目经理作为一个团队的领导，首先要认知自己的角色，明确自己的职责，逐步加强与团队成员的关系，善于激励别人，建立友好关系，要用不同的方式和不同的人打交道，同时要帮助绩效不佳的人。所以说，项目经理不能只是埋头于技术钻研，更重要的是带动整个团队，燃起团队的激情，俗话说&amp;#8220;兵熊熊一个，将熊熊一窝&amp;#8221;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;其次，要明确团队目标，制定团队守则，增强团队成员间的信任关系，给予员工挑战性的工作，让团队充满生机和活力，给予表扬，协调人际冲突，处理危机。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;最后，项目经理要善于评估绩效，做到奖惩分明，让不好的倾向和行为习惯扼杀在初始阶段。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; "&gt;懂技术&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10.5pt; "&gt;项目经理只有懂技术，才能估算工作量，制定的计划才能相对可行。其次，懂技术，才能和别人沟通，尤其是和客户沟通，客户才能信任你。在软件开发领域&amp;#8220;外行领导内行&amp;#8221;不太现实。最为关键的是，即使主要技术人员走了，项目经理能随时补缺，不至于让项目瘫痪!&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/1934412.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2011/01/13/1934412.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/lzhdim/archive/2010/12/28/1918888.html</id><title type="text">VMware虚拟机搭建实战</title><summary type="text">本文应一个网友需要所写。前面我们说到了VirtualBox搭建虚拟机的过程。见文《学习环境的虚拟机搭建 - 学习者系列文章》。这里再介绍下VMware搭建虚拟机的过程。VMware虚拟机的搭建，比VirtualBox的搭建过程更简单，不需要设置什么很多的内容。但是，它不是免费的，所以需要注册或者破解，这里不介绍注册破解方法，也不提供相关的版本下载，请需要的朋友自己去解决。下面开始吧，直接以截图为例就行了。。。1） 首先，安装虚拟机。这里以7.0.0 build-203739绿色精简版为例进行安装。直接解压缩到一个文件夹，运行@install.cmd文件进行注册。选择联网方式。 2） 点击菜单的</summary><published>2010-12-28T07:47:00Z</published><updated>2010-12-28T07:47:00Z</updated><author><name>lzhdim</name><uri>http://www.cnblogs.com/lzhdim/</uri></author><link rel="alternate" href="http://www.cnblogs.com/lzhdim/archive/2010/12/28/1918888.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/lzhdim/archive/2010/12/28/1918888.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;span style="font-size:9.0pt; font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;本文应一个网友需要所写。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt; font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;前面我们说到了&lt;/span&gt;&lt;span style="font-size:9.0pt"&gt;VirtualBox&lt;/span&gt;&lt;span style="font-size:9.0pt;font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;搭建虚拟机的过程。见文《&lt;a href="http://www.cnblogs.com/lzhdim/archive/2010/12/27/1918129.html" title="学习环境的虚拟机搭建 - 学习者系列文章"&gt;学习环境的虚拟机搭建 - 学习者系列文章&lt;/a&gt;》。这里再介绍下&lt;/span&gt;&lt;span style="font-size:9.0pt"&gt;VMware&lt;/span&gt;&lt;span style="font-size:9.0pt; font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;搭建虚拟机的过程。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;VMware&lt;/span&gt;&lt;span style="font-size:9.0pt;font-family: 宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;虚拟机的搭建，比&lt;/span&gt;&lt;span style="font-size:9.0pt"&gt;VirtualBox&lt;/span&gt;&lt;span style="font-size: 9.0pt;font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;的搭建过程更简单，不需要设置什么很多的内容。但是，它不是免费的，所以需要注册或者破解，这里不介绍注册破解方法，也不提供相关的版本下载，请需要的朋友自己去解决。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt; font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;下面开始吧，直接以截图为例就行了。。。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 9.0pt;Times New Roman&amp;quot;"&gt;1）&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9.0pt;font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;首先，安装虚拟机。这里以&lt;/span&gt;&lt;span style="font-size:9.0pt"&gt;7.0.0&lt;/span&gt;&lt;span style="font-size:9.0pt"&gt; build-203739&lt;/span&gt;&lt;span style="font-size:9.0pt; font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;绿色精简版为例进行安装。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt; font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;直接解压缩到一个文件夹，&lt;/span&gt;&lt;span style="font-size:9.0pt"&gt;&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#37;&amp;#69;&amp;#56;&amp;#37;&amp;#66;&amp;#70;&amp;#37;&amp;#57;&amp;#48;&amp;#37;&amp;#69;&amp;#56;&amp;#37;&amp;#65;&amp;#49;&amp;#37;&amp;#56;&amp;#67;&amp;#64;&amp;#105;&amp;#110;&amp;#115;&amp;#116;&amp;#97;&amp;#108;&amp;#108;&amp;#46;&amp;#99;&amp;#109;&amp;#100;"&gt;&lt;span style="font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;;color:windowtext; text-decoration:none;text-underline:none"&gt;运行&lt;/span&gt;&lt;span style="color:windowtext;text-decoration:none;text-underline:none"&gt;@install.cmd&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:9.0pt;font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;文件进行注册。选择联网方式。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image1.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 9pt; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image2.JPG" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image3.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 9.0pt;Times New Roman&amp;quot;"&gt;2）&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9.0pt;font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;点击菜单的新建。开始创建新虚拟机。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image001.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image002.JPG" alt="" /&gt; &lt;/span&gt;;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image003.JPG" alt="" /&gt; &lt;/span&gt;;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image004.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image005.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image006.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image007.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image008.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://images.cnblogs.com/cnblogs_com/lzhdim/277238/r_image009.JPG" alt="" /&gt; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 9.0pt;Times New Roman&amp;quot;"&gt;3）&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:9.0pt;font-family:宋体;Times New Roman&amp;quot;;Times New Roman&amp;quot;"&gt;开始安装操作系统。后续不用介绍了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/lzhdim/aggbug/1918888.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/lzhdim/archive/2010/12/28/1918888.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
