﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-zx_bing-随笔分类-js</title><link>http://www.blogjava.net/zxb90study/category/52188.html</link><description>人生路漫漫，多学些知识总是有益处的</description><language>zh-cn</language><lastBuildDate>Fri, 27 Jul 2012 12:26:07 GMT</lastBuildDate><pubDate>Fri, 27 Jul 2012 12:26:07 GMT</pubDate><ttl>60</ttl><item><title>输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合，还要求不能超过6个汉字,还要验证汉字和字母，数字的组合 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384150.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:06:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384150.html</guid><description><![CDATA[&lt;input name="username" value="" length="12" maxlengthd="12"/&gt; <br />数据库里面username vachar2(12) <br /><br />这个输入框要求用JAVASCRIPT去验证不能超过12个数字或英文或数字英文组合，还要求不能超过6个汉字,还要验证汉字和字母，数字的组合 <br /><br />如：用户名1999(就可以)，麦克斯韦1999(就不行) <br /><br />因为数据库里面要求的长度是12，一个汉字就占两个，但是在页面可以输入12个汉字 <br />请用JAVASCRIPT写出你的解决方案？ <br /><br /><br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Js代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/478313#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-c"><li><span>&lt;html&gt;&nbsp;&nbsp;&nbsp; </span></li><li><span>&lt;meta http-equiv=<span class="string">"Content-Type"</span><span> content=</span><span class="string">"text/html; charset=utf-8"</span><span>&gt;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>输入待测字串: &amp;nbsp;&lt;input type=<span class="string">"text"</span><span> onblur=</span><span class="string">"test(this.value);"</span><span>&gt;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&lt;/html&gt;&nbsp;&nbsp;&nbsp; </span></li><li><span>&lt;script language=<span class="string">"javascript"</span><span>&gt;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&lt;!--&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span class="comment">//测试匹配情况&nbsp;&nbsp; </span><span>&nbsp; </span></li><li><span class="keyword">function</span><span> test(inputVal)&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>{&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//去除首尾空格&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; inputValinputVal = inputVal.replace(/^\s*|\s*$/g,<span class="string">""</span><span>);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//零长字串不作处理&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> ( inputVal.length == 0 )&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//只能匹配数字,字母或汉字&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//匹配数字或字母(包括大小写)&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> codeMatch = inputVal.match(/[a-zA-Z0-9]/g);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//匹配汉字&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//数字或字母个数&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> codeNum = codeMatch ? codeMatch.length : 0;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//汉字个数&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">var</span><span> charNum = charMatch ? charMatch.length : 0;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//成功&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> ( _match &amp;&amp; codeNum + 2*charNum &lt;= 12 )&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(<span class="string">"输入正确!"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//失败&nbsp;&nbsp; </span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; alert(<span class="string">"输入错误!"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li><li><span>}&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span class="comment">//--&gt;&nbsp; </span><span>&nbsp; </span></li><li><span>&lt;/script&gt;&nbsp; </span></li></ol></div><img src ="http://www.blogjava.net/zxb90study/aggbug/384150.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:06 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384150.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ajax 模拟动态列表 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384149.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384149.html</guid><description><![CDATA[three.html<br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/508390#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>&lt;!DOCTYPE HTML PUBLIC </span><span class="string">"-//W3C//DTD HTML 4.01 Transitional//EN"</span><span>&gt;&nbsp; </span></li><li><span>&lt;html&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;head&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;index.html&lt;/title&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=<span class="string">"keywords"</span><span> content=</span><span class="string">"keyword1,keyword2,keyword3"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=<span class="string">"description"</span><span> content=</span><span class="string">"this is my page"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;meta http-equiv=<span class="string">"content-type"</span><span> content=</span><span class="string">"text/html; charset=GBK"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script type=<span class="string">"text/javascript"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var xmlhttp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function loadXMLDoc(valueFromSelect1){&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url = <span class="string">"three.jsp?valueFromSelect="</span><span> + valueFromSelect1 + </span><span class="string">"&amp;"</span><span> + Math.random();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(url);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=<span class="keyword">null</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (window.XMLHttpRequest){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=<span class="keyword">new</span><span> XMLHttpRequest();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">else</span><span> </span><span class="keyword">if</span><span> (window.ActiveXObject){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp=<span class="keyword">new</span><span> ActiveXObject(</span><span class="string">"Microsoft.XMLHTTP"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (xmlhttp!=</span><span class="keyword">null</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.onreadystatechange=updatePage;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.open(<span class="string">"GET"</span><span>,url,</span><span class="keyword">true</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlhttp.send(<span class="keyword">null</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">else</span><span>{&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(<span class="string">"Your browser does not support XMLHTTP."</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function state_Change(){&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (xmlhttp.readyState==</span><span class="number">4</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (xmlhttp.status==</span><span class="number">200</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; updatePage();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">else</span><span>{&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(<span class="string">"Problem retrieving XML data"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function updatePage(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">// 清空select2</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">while</span><span>(select2.options[</span><span class="number">0</span><span>] != </span><span class="keyword">null</span><span>){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select2.options[<span class="number">0</span><span>] = </span><span class="keyword">null</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">// 设置select2</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var xmlDoc = xmlhttp.responseXML;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(xmlDoc);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var labelValueBeanElements = xmlDoc.getElementsByTagName(<span class="string">"labelValueBean"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">for</span><span> (var i = </span><span class="number">0</span><span>; i &lt; labelValueBeanElements.length; i++){&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var entityValue = xmlDoc.getElementsByTagName(<span class="string">"value"</span><span>)[i].childNodes[</span><span class="number">0</span><span>].nodeValue;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var entityLabel = xmlDoc.getElementsByTagName(<span class="string">"label"</span><span>)[i].childNodes[</span><span class="number">0</span><span>].nodeValue;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select2.options[i] = <span class="keyword">new</span><span> Option(entityLabel,entityValue,</span><span class="keyword">false</span><span>,</span><span class="keyword">false</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;/head&gt;&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;body&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select1:&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select id=<span class="string">"select1"</span><span> onchange=</span><span class="string">"loadXMLDoc(this.value)"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value=<span class="string">"1"</span><span>&gt;</span><span class="number">1</span><span>&lt;/option&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;option value=<span class="string">"2"</span><span>&gt;</span><span class="number">2</span><span>&lt;/option&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br/&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select2:&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select id=<span class="string">"select2"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/select&gt;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=<span class="string">"button"</span><span> value=</span><span class="string">"显示select2的值"</span><span> onclick=</span><span class="string">"alert(select2.value)"</span><span>&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; &lt;/body&gt;&nbsp; </span></li><li><span>&lt;/html&gt;&nbsp; </span></li></ol></div><pre style="display: none;" class="java" title="Ajax 模拟动态列表" pre_index="0" source_url="http://oyprunner.iteye.com/blog/508390" codeable_type="Blog" codeable_id="508390" name="code">&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;index.html&lt;/title&gt;
        &lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;
        &lt;meta http-equiv="description" content="this is my page"&gt;
        &lt;meta http-equiv="content-type" content="text/html; charset=GBK"&gt;
        &lt;script type="text/javascript"&gt;
        var xmlhttp;
        function loadXMLDoc(valueFromSelect1){
            var url = "three.jsp?valueFromSelect=" + valueFromSelect1 + "&amp;" + Math.random();
            alert(url);
            xmlhttp=null;
            if (window.XMLHttpRequest){
              xmlhttp=new XMLHttpRequest();
            }
            else if (window.ActiveXObject){
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            if (xmlhttp!=null){
              xmlhttp.onreadystatechange=updatePage;
              xmlhttp.open("GET",url,true);
              xmlhttp.send(null);
            }
            else{
              alert("Your browser does not support XMLHTTP.");
            }
        }
        
        function state_Change(){
            if (xmlhttp.readyState==4){
                if (xmlhttp.status==200){
                    updatePage();
                }
                else{
                    alert("Problem retrieving XML data");
                }
            }
        }
        
        function updatePage(){            
            // 清空select2
            while(select2.options[0] != null){
                select2.options[0] = null;
            }
            
            // 设置select2
            var xmlDoc = xmlhttp.responseXML;
            alert(xmlDoc);
            var labelValueBeanElements = xmlDoc.getElementsByTagName("labelValueBean");
          
            for (var i = 0; i &lt; labelValueBeanElements.length; i++){
                var entityValue = xmlDoc.getElementsByTagName("value")[i].childNodes[0].nodeValue;
                var entityLabel = xmlDoc.getElementsByTagName("label")[i].childNodes[0].nodeValue;
                select2.options[i] = new Option(entityLabel,entityValue,false,false);
            }
        }
        &lt;/script&gt;
    &lt;/head&gt;

    &lt;body&gt;
        select1:
        &lt;select id="select1" onchange="loadXMLDoc(this.value)"&gt;
            &lt;option value="1"&gt;1&lt;/option&gt;
            &lt;option value="2"&gt;2&lt;/option&gt;
        &lt;/select&gt;
        &lt;br/&gt;
        select2:
        &lt;select id="select2"&gt;
        &lt;/select&gt;
        &lt;input type="button" value="显示select2的值" onclick="alert(select2.value)"&gt;
    &lt;/body&gt;
&lt;/html&gt;</pre><br /><br /><br /><br /><br /><br />three.jsp<br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/508390#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>&lt;%@ page language=</span><span class="string">"java"</span><span> contentType=</span><span class="string">"text/html; charset=UTF-8"</span><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; pageEncoding=<span class="string">"UTF-8"</span><span>%&gt;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span> &lt;%!&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">private</span><span> String fromDB (String valueFromSelect)&nbsp; {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer sb = <span class="keyword">new</span><span> StringBuffer();&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (valueFromSelect.equals(</span><span class="string">"1"</span><span>)) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;haha&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;哈哈&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;hehe&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;呵呵&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <span class="keyword">else</span><span> </span><span class="keyword">if</span><span> (valueFromSelect.equals(</span><span class="string">"2"</span><span>)) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;heihei&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;嘿嘿&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;gaga&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;嘎嘎&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;woyun&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;我晕&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;value&gt;123&lt;/value&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;456&lt;/label&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&nbsp;&nbsp;&nbsp; &lt;/labelValueBean&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span> sb.toString();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>%&gt;&nbsp; </span></li><li><span>&lt;%&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; String valueFromSelect = request.getParameter(<span class="string">"valueFromSelect"</span><span>);&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; StringBuffer sb = <span class="keyword">new</span><span> StringBuffer();&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&lt;?xml version=\"1.0\" encoding=\"gb2312\"?&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&lt;resultFromDB&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(fromDB(valueFromSelect));&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; sb.append(<span class="string">"&lt;/resultFromDB&gt;\n"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; response.setHeader(<span class="string">"content-type"</span><span>, </span><span class="string">"text/xml;charset=GBK"</span><span>);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; System.out.println(sb);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; out.println(sb.toString());&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//out.flush();</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; out.close();&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; %&gt;&nbsp; </span></li></ol></div><img src ="http://www.blogjava.net/zxb90study/aggbug/384149.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:04 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384149.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>全选调用的JS函数 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384148.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:03:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384148.html</guid><description><![CDATA[<div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/539497#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>function selectall()&nbsp;&nbsp; </span></li><li><span>{&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//获取页面上所有的输入元素</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; var a = document.getElementsByTagName(<span class="string">"input"</span><span>);&nbsp;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//如果全选按钮按上</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(document.getElementById(</span><span class="string">"quanxuanbutton"</span><span>).checked == </span><span class="keyword">true</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">//循环是checkbox类型的，就设置为true</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">for</span><span> (var i=</span><span class="number">0</span><span>; i&lt;a.length; i++)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (a[i].type == </span><span class="string">"checkbox"</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i].checked =<span class="keyword">true</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; }<span class="keyword">else</span><span>{ </span><span class="comment">//如果全选按钮没有按上</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">for</span><span> (var i=</span><span class="number">0</span><span>; i&lt;a.length; i++)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (a[i].type == </span><span class="string">"checkbox"</span><span>)&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i].checked =<span class="keyword">false</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>}&nbsp;&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:03 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>dwr 实现二级联动 js </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384147.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384147.html</guid><description><![CDATA[<div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/540388#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span class="comment">//省市联动 </span><span>&nbsp; </span></li><li><span>var c_cigy = <span class="string">''</span><span>;&nbsp; </span></span></li><li><span class="comment">//记录第二个列表id，以备回调函数用</span><span>&nbsp; </span></li><li><span>var cityItemName = <span class="string">''</span><span>;&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>function&nbsp; changeCityOyp(province,city,relateItemName) {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; ServerDwrUtil.getCityList(province.value,setCityOption);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//记录二级下拉的 id relateItemName 供回调函数使用</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; cityItemName = relateItemName;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">// 中国 则 二级下拉 不能选择</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span>(province.value == </span><span class="string">'0001'</span><span>) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(cityItemName).disabled = <span class="keyword">true</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; } <span class="keyword">else</span><span> {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(cityItemName).disabled = <span class="keyword">false</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//省份在一个单元格里，省份前面有个input输入框,得到input对象，再把省份传进去</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; var provinceInput&nbsp; = province.parentNode.firstChild;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//如果省份为空，则单元格为空</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="keyword">if</span><span> (province.value == </span><span class="string">''</span><span>) {&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; provinceInput.value = <span class="string">''</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>;&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; }&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; provinceInput.value = province.options[province.selectedIndex].text;&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></li><li><span>}&nbsp; </span></li><li><span class="comment">// 回调函数 args返回的是list.add(Map) map中{id}，经过 spring配置 对于一些特例返回的Class，且dwr不能识别的，</span><span>&nbsp; </span></li><li><span class="comment">//&lt;/dwr:configuration&gt;</span><span>&nbsp; </span></li><li><span class="comment">// 设置二级下拉列表</span><span>&nbsp; </span></li><li><span>function setCityOption (args) {&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; alert(args.toString());&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; DWRUtil.removeAllOptions(cityItemName);&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp; DWRUtil.addOptions(cityItemName, [ <span class="string">""</span><span> ]);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; <span class="comment">//id和name怎么确保的&nbsp;&nbsp; args{[id:xxx,name:yyy],[id:xxx,name:yyyy]}</span><span>&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp; DWRUtil.addOptions(cityItemName, args, <span class="string">"id"</span><span>, </span><span class="string">"name"</span><span>);&nbsp; </span></span></li><li><span>}&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384147.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:02 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384147.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript获取select的值全解 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384146.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:01:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384146.html</guid><description><![CDATA[<div class="bar"><div class="tools">Js代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/553960#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-c"><li><span>获取显示的汉字&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>document.getElementById(<span class="string">"bigclass"</span><span>).options[window.document.getElementById(</span><span class="string">"bigclass"</span><span>).selectedIndex].text&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>获取数据库中的id&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).value&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>获取select组分配的索引id&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).selectedIndex&nbsp; </span></span></li><li><span>&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>例子：&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&lt;select name=<span class="string">"bigclass"</span><span> id=</span><span class="string">"bigclass"</span><span> onChange=</span><span class="string">"javascript:updatePage2();"</span><span>&gt;&nbsp; </span></span></li><li><span>&lt;option value=<span class="string">""</span><span> selected=</span><span class="string">"selected"</span><span>&gt;ajax实验&lt;/option&gt;&nbsp; </span></span></li><li><span>&lt;option value=<span class="string">"4"</span><span>&gt;我适宜市哈&lt;/option&gt;&nbsp; </span></span></li><li><span>&lt;/select&gt;&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>使用&nbsp; </span></li><li><span>document.getElementById(<span class="string">"bigclass"</span><span>).options[window.document.getElementById(</span><span class="string">"bigclass"</span><span>).selectedIndex].text&nbsp; </span></span></li><li><span>的结果是：我适宜市哈&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>使用&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).value&nbsp; </span></span></li><li><span>的结果是：4&nbsp; </span></li><li><span>&nbsp; </span></li><li><span>使用&nbsp; </span></li><li><span>window.document.getElementById(<span class="string">"bigclass"</span><span>).selectedIndex&nbsp; </span></span></li><li><span>的结果是：1&nbsp; </span></li></ol><img src ="http://www.blogjava.net/zxb90study/aggbug/384146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:01 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js变量作为URL参数 中文乱码解决方法 </title><link>http://www.blogjava.net/zxb90study/archive/2012/07/27/384144.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Fri, 27 Jul 2012 06:00:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/27/384144.html</guid><description><![CDATA[1--前台页面<br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/573623#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>var uuid = encodeURI(encodeURI(oRecord.getData(</span><span class="string">"uuid"</span><span>)));&nbsp; </span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var uname =encodeURI(encodeURI(oRecord.getData(<span class="string">"uname"</span><span>)));&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(uuid+<span class="string">"--"</span><span>+uname);&nbsp; </span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var updateURL =&nbsp; contextPath+<span class="string">"/yuidemo/userManager.do?method=updateUser?uuid="</span><span>+uuid+</span><span class="string">"&amp;uname="</span><span>+uname;&nbsp; </span></span></li></ol></div><pre style="display: none;" class="java" title="js变量作为URL参数 中文乱码解决方法" pre_index="0" source_url="http://oyprunner.iteye.com/blog/573623" codeable_type="Blog" codeable_id="573623" name="code">var uuid = encodeURI(encodeURI(oRecord.getData("uuid")));
			 var uname =encodeURI(encodeURI(oRecord.getData("uname")));
			  alert(uuid+"--"+uname);
			  var updateURL =  contextPath+"/yuidemo/userManager.do?method=updateUser?uuid="+uuid+"&amp;uname="+uname;</pre><br /><br /><br />2--控制层<br /><br /><div class="dp-highlighter"><div class="bar"><div class="tools">Java代码 <a title="复制代码" href="http://oyprunner.iteye.com/blog/573623#"><img alt="复制代码" src="http://oyprunner.iteye.com/images/icon_copy.gif" /></a> <a title="收藏这段代码" href="javascript:void()"><img class="star" alt="收藏代码" src="http://oyprunner.iteye.com/images/icon_star.png" /><img style="display: none;" class="spinner" src="http://oyprunner.iteye.com/images/spinner.gif"  alt="" /></a></div></div><ol class="dp-j"><li><span>String uuid =&nbsp; java.net.URLDecoder.decode(request.getParameter(</span><span class="string">"uuid"</span><span>),</span><span class="string">"utf-8"</span><span>);&nbsp; </span></li></ol></div><pre style="display: none;" class="java" title="js变量作为URL参数 中文乱码解决方法" pre_index="1" source_url="http://oyprunner.iteye.com/blog/573623" codeable_type="Blog" codeable_id="573623" name="code">String uuid =  java.net.URLDecoder.decode(request.getParameter("uuid"),"utf-8");</pre><img src ="http://www.blogjava.net/zxb90study/aggbug/384144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-27 14:00 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/27/384144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提高js性能注意事项</title><link>http://www.blogjava.net/zxb90study/archive/2012/07/25/383903.html</link><dc:creator>zx_bing</dc:creator><author>zx_bing</author><pubDate>Tue, 24 Jul 2012 22:44:00 GMT</pubDate><guid>http://www.blogjava.net/zxb90study/archive/2012/07/25/383903.html</guid><description><![CDATA[<span style="font-size: medium;">一．执行效率<br />1. DOM<br />1.1 使用DocumentFragment优化多次append<br />说明：添加多个dom元素时，先将元素append到DocumentFragment中，最后统一将DocumentFragment添加到页面。<br />该做法可以减少页面渲染dom元素的次数。经IE和Fx下测试，在append1000个元素时，效率能提高10%-30%，Fx下提升较为明显。<br /><br />服用前：<br />for (var i = 0; i &lt; 1000; i++) {<br />&nbsp;&nbsp;&nbsp; var el = document.createElement('p');<br />&nbsp;&nbsp;&nbsp; el.innerHTML = i;<br />&nbsp;&nbsp;&nbsp; document.body.appendChild(el);<br />}<br /><br />服用后：<br />var frag = document.createDocumentFragment();<br />for (var i = 0; i &lt; 1000; i++) {<br />&nbsp;&nbsp;&nbsp; var el = document.createElement('p');<br />&nbsp;&nbsp;&nbsp; el.innerHTML = i;<br />&nbsp;&nbsp;&nbsp; frag.appendChild(el);<br />}<br />document.body.appendChild(frag);<br /><br />1.2 通过模板元素clone，替代createElement<br />说明：通过一个模板dom对象cloneNode，效率比直接创建element高。<br />性能提高不明显，约为10%左右。在低于100个元素create和append操作时，没有优势。<br /><br />服用前：<br />var frag = document.createDocumentFragment();<br />for (var i = 0; i &lt; 1000; i++) {<br />&nbsp;&nbsp;&nbsp; var el = document.createElement('p');<br />&nbsp;&nbsp;&nbsp; el.innerHTML = i;<br />&nbsp;&nbsp;&nbsp; frag.appendChild(el);<br />}<br />document.body.appendChild(frag);&nbsp;&nbsp;&nbsp; <br /><br />服用后：<br />var frag = document.createDocumentFragment();<br />var pEl = document.getElementsByTagName('p')[0];<br />for (var i = 0; i &lt; 1000; i++) {<br />&nbsp;&nbsp;&nbsp; var el = pEl.cloneNode(false);<br />&nbsp;&nbsp;&nbsp; el.innerHTML = i;<br />&nbsp;&nbsp;&nbsp; frag.appendChild(el);<br />}<br />document.body.appendChild(frag);<br /><br />1.3 使用一次innerHTML赋值代替构建dom元素<br />说明：根据数据构建列表样式的时候，使用设置列表容器innerHTML的方式，比构建dom元素并append到页面中的方式，效率有数量级上的提高。 <br /><br />服用前：<br />var frag = document.createDocumentFragment();<br />for (var i = 0; i &lt; 1000; i++) {<br />&nbsp;&nbsp;&nbsp; var el = document.createElement('p');<br />&nbsp;&nbsp;&nbsp; el.innerHTML = i;<br />&nbsp;&nbsp;&nbsp; frag.appendChild(el);<br />}<br />document.body.appendChild(frag);<br /><br />服用后：<br />var html = [];<br />for (var i = 0; i &lt; 1000; i++) {<br />&nbsp;&nbsp;&nbsp; html.push('' + i + '<br />');<br />}<br />document.body.innerHTML = html.join('');<br /><br />1.4 使用firstChild和nextSibling代替childNodes遍历dom元素<br />说明：约能获得30%-50%的性能提高。逆向遍历时使用lastChild和previousSibling。<br /><br />服用前：<br />var nodes = element.childNodes;<br />for (var i = 0, l = nodes.length; i &lt; l; i++) {<br />var node = nodes[i];<br />&#8230;&#8230;<br />}<br /><br />服用后：<br />var node = element.firstChild;<br />while (node) {<br />&#8230;&#8230;<br />node = node.nextSibling;<br />}<br /><br /><br />2. 字符串<br /><br />2.1 使用Array做为StringBuffer，代替字符串拼接的操作<br />说明：IE在对字符串拼接的时候，会创建临时的String对象；经测试，在IE下，当拼接的字符串越来越大时，运行效率会急剧下降。Fx和Opera都对字符串拼接操作进行了优化；经测试，在Fx下，使用Array的join方式执行时间约为直接字符串拼接的1.4倍。<br /><br />服用前：<br />var now = new Date();<br />var str = '';<br />for (var i = 0; i &lt; 10000; i++) {<br />&nbsp;&nbsp;&nbsp; str += '123456789123456789';<br />}<br />alert(new Date() - now);<br /><br />服用后：<br />var now = new Date();<br />var strBuffer = [];<br />for (var i = 0; i &lt; 10000; i++) {<br />&nbsp;&nbsp;&nbsp; strBuffer.push('123456789123456789');<br />}<br />var str = strBuffer.join('');<br />alert(new Date() - now);<br /><br /><br />3. 循环语句<br /><br />3.1 将循环控制量保存到局部变量<br />说明：对数组和列表对象的遍历时，提前将length保存到局部变量中，避免在循环的每一步重复取值。<br /><br />服用前：<br />var list = document.getElementsByTagName('p');<br />for (var i = 0; i &lt; list.length; i++) {<br />&nbsp;&nbsp;&nbsp; &#8230;&#8230;<br />}<br /><br />服用后：<br />var list = document.getElementsByTagName('p');<br />for (var i = 0, l = list.length; i &lt; l; i++) {<br />&nbsp;&nbsp;&nbsp; &#8230;&#8230;<br />}<br /><br /><br />3.2 顺序无关的遍历时，用while替代for<br />说明：该方法可以减少局部变量的使用。比起效率优化，更能直接看到的是字符数量的优化。该做法有程序员强迫症的嫌疑。<br /><br />服用前：<br />var arr = [1,2,3,4,5,6,7];<br />var sum = 0;<br />for (var i = 0, l = arr.length; i &lt; l; i++) {<br />&nbsp;&nbsp;&nbsp; sum += arr[i];<br />}&nbsp;&nbsp;&nbsp; <br /><br />服用后：<br />var arr = [1,2,3,4,5,6,7];<br />var sum = 0, l = arr.length;<br />while (l--) {<br />&nbsp;&nbsp;&nbsp; sum += arr[l];<br />}<br /><br />4. 条件分支<br /><br />4.1 将条件分支，按可能性顺序从高到低排列<br />说明：可以减少解释器对条件的探测次数。<br /><br />4.2 在同一条件子的多（&gt;2）条件分支时，使用switch优于if<br />说明：switch分支选择的效率高于if，在IE下尤为明显。4分支的测试，IE下switch的执行时间约为if的一半。<br /><br />4.3 使用三目运算符替代条件分支<br />服用前：<br />if (a &gt; b) {<br />num = a;<br />} else {<br />num = b;<br />}<br /><br />服用后：<br />num = a &gt; b ? a : b;<br /><br /><br />5. 定时器<br /><br />5.1 需要不断执行的时候，优先考虑使用setInterval<br />说明：setTimeout每一次都会初始化一个定时器。setInterval只会在开始的时候初始化一个定时器<br /><br />服用前：<br />var timeoutTimes = 0;<br />function timeout () {<br />&nbsp;&nbsp;&nbsp; timeoutTimes++;<br />&nbsp;&nbsp;&nbsp; if (timeoutTimes &lt; 10) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setTimeout(timeout, 10);<br />&nbsp;&nbsp;&nbsp; }<br />}<br />timeout();<br /><br />服用后：<br />var intervalTimes = 0;<br />function interval () {<br />&nbsp;&nbsp;&nbsp; intervalTimes++;<br />&nbsp;&nbsp;&nbsp; if (intervalTimes &gt;= 10) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clearInterval(interv);<br />&nbsp;&nbsp;&nbsp; }<br />}<br />var interv = setInterval(interval, 10);<br /><br />5.2 使用function而不是string<br />说明：如果把字符串作为setTimeout和setInterval的参数，浏览器会先用这个字符串构建一个function。<br /><br />服用前：<br />var num = 0;<br />setTimeout('num++', 10);&nbsp;&nbsp;&nbsp; <br /><br />服用后：<br />var num = 0;<br />function addNum () {<br />&nbsp;&nbsp;&nbsp; num++;<br />}<br />setTimeout(addNum, 10);<br /><br /><br />6. 其他<br /><br />6.1 尽量不使用动态语法元素<br />说明：eval、Function、execScript等语句会再次使用javascript解析引擎进行解析，需要消耗大量的执行时间。<br /><br />6.2 重复使用的调用结果，事先保存到局部变量<br />说明：避免多次取值的调用开销。<br /><br />服用前：<br />var h1 = element1.clientHeight + num1;<br />var h2 = element1.clientHeight + num2;<br /><br />服用后：<br />var eleHeight = element1.clientHeight;<br />var h1 = eleHeight + num1;<br />var h2 = eleHeight + num2;<br /><br />6.3 使用直接量<br />说明： <br />var a = new Array(param,param,...) -&gt; var a = []<br />var foo = new Object() -&gt; var foo = {}<br />var reg = new RegExp() -&gt; var reg = /.../<br /><br />6.4 避免使用with<br />说明： with虽然可以缩短代码量，但是会在运行时构造一个新的scope。<br />OperaDev上还有这样的解释，使用with语句会使得解释器无法在语法解析阶段对代码进行优化。对此说法，无法验证。<br /><br />服用前：<br />with (a.b.c.d) {<br />property1 = 1;<br />property2 = 2;<br />}<br /><br /><br />服用后：<br />var obj = a.b.c.d;<br />obj.property1 = 1;<br />obj.property2 = 2;<br /><br /><br />6.5 巧用||和&amp;&amp;布尔运算符<br /><br />服用前：<br />function eventHandler (e) {<br />if(!e) e = window.event;<br />}<br /><br /><br />服用后：<br />function eventHandler (e) {<br />e = e || window.event;<br />}<br /><br /><br />服用前：<br />if (myobj) {<br />doSomething(myobj);<br />}<br /><br /><br />服用后：<br />myobj &amp;&amp; doSomething(myobj);<br /><br /><br />6.6 类型转换<br />说明： <br />1).&nbsp;&nbsp;&nbsp; 数字转换成字符串，应用"" + 1，性能上：("" +) &gt; String() &gt; .toString() &gt; new String()；<br />2).&nbsp;&nbsp;&nbsp; 浮点数转换成整型，不使用parseInt()， parseInt()是用于将字符串转换成数字，而不是浮点数和整型之间的转换，建议使用Math.floor()或者Math.round()<br />3).&nbsp;&nbsp;&nbsp; 对于自定义的对象，推荐显式调用toString()。内部操作在尝试所有可能性之后，会尝试对象的toString()方法尝试能否转化为String。<br /><br /><br />二．内存管理<br /><br />2.1 循环引用<br />说明：如果循环引用中包含DOM对象或者ActiveX对象，那么就会发生内存泄露。内存泄露的后果是在浏览器关闭前，即使是刷新页面，这部分内存不会被浏览器释放。<br /><br />简单的循环引用：<br />var el = document.getElementById('MyElement');<br />var func = function () {&#8230;}<br />el.func = func;<br />func.element = el; <br /><br /><br />但是通常不会出现这种情况。通常循环引用发生在为dom元素添加闭包作为expendo的时候。<br /><br />如：<br />function init() {<br />&nbsp;&nbsp;&nbsp; var el = document.getElementById('MyElement');<br />el.onclick = function () {&#8230;&#8230;}<br />}<br />init();<br /><br /><br />init在执行的时候，当前上下文我们叫做context。这个时候，context引用了el，el引用了function，function引用了context。这时候形成了一个循环引用。<br /><br />下面2种方法可以解决循环引用：<br /><br />1)&nbsp;&nbsp;&nbsp; 置空dom对象<br /><br />服用前：<br />function init() {<br />var el = document.getElementById('MyElement');<br />el.onclick = function () {&#8230;&#8230;}<br />}<br />init();<br /><br /><br />服用后：<br />function init() {<br />var el = document.getElementById('MyElement');<br />el.onclick = function () {&#8230;&#8230;}<br />el = null;<br />}<br />init();<br /><br /><br />将el置空，context中不包含对dom对象的引用，从而打断循环应用。<br />如果我们需要将dom对象返回，可以用如下方法：<br /><br />服用前：<br />function init() {<br />&nbsp;&nbsp;&nbsp; var el = document.getElementById('MyElement');<br />&nbsp;&nbsp;&nbsp; el.onclick = function () {&#8230;&#8230;}<br />&nbsp;&nbsp;&nbsp; return el;<br />}<br />init();<br /><br /><br />服用后：<br />function init() {<br />var el = document.getElementById('MyElement');<br />el.onclick = function () {&#8230;&#8230;}<br />try{<br />return el;<br />} finally {<br />&nbsp;&nbsp;&nbsp; el = null;<br />}<br />}<br />init();<br /><br />2)&nbsp;&nbsp;&nbsp; 构造新的context<br />服用前：<br />function init() {<br />&nbsp;&nbsp;&nbsp; var el = document.getElementById('MyElement');<br />&nbsp;&nbsp;&nbsp; el.onclick = function () {&#8230;&#8230;}<br />}<br />init();<br /><br /><br />服用后：<br />function elClickHandler() {&#8230;&#8230;}<br />function init() {<br />&nbsp;&nbsp;&nbsp; var el = document.getElementById('MyElement');<br />&nbsp;&nbsp;&nbsp; el.onclick = elClickHandler;<br />}<br />init();<br /><br />把function抽到新的context中，这样，function的context就不包含对el的引用，从而打断循环引用。<br /><br />2.2 通过javascript创建的dom对象，必须append到页面中<br />说明：IE下，脚本创建的dom对象，如果没有append到页面中，刷新页面，这部分内存是不会回收的！<br /><br />示例代码：<br /><br />&nbsp;&nbsp;&nbsp; function create () {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var gc = document.getElementById('GC');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var i = 0; i &lt; 5000 ; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var el = document.createElement('div');<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; el.innerHTML = "test";<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //下面这句可以注释掉，看看浏览器在任务管理器中，点击按钮然后刷新后的内存变化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gc.appendChild(el);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br /><br /><br />2.3 释放dom元素占用的内存<br />说明：<br />将dom元素的innerHTML设置为空字符串，可以释放其子元素占用的内存。<br />在rich应用中，用户也许会在一个页面上停留很长时间，可以使用该方法释放积累得越来越多的dom元素使用的内存。<br /><br />2.4 释放javascript对象<br />说明：在rich应用中，随着实例化对象数量的增加，内存消耗会越来越大。所以应当及时释放对对象的引用，让GC能够回收这些内存控件。<br />对象：obj = null<br />对象属性：delete obj.myproperty<br />数组item：使用数组的splice方法释放数组中不用的item<br /><br />2.5 避免string的隐式装箱<br />说明：对string的方法调用，比如'xxx'.length，浏览器会进行一个隐式的装箱操作，将字符串先转换成一个String对象。推荐对声明有可能使用String实例方法的字符串时，采用如下写法：<br />var myString = new String('Hello World');</span><img src ="http://www.blogjava.net/zxb90study/aggbug/383903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zxb90study/" target="_blank">zx_bing</a> 2012-07-25 06:44 <a href="http://www.blogjava.net/zxb90study/archive/2012/07/25/383903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>