解决方案 »

  1.   

    加载顺序
    <!DOCTYPE html>
    <html>
    <head>
     </head>
    <body>
    <div>
           <ul id="UlLi">
            <li value="11a">111a</li>
     <li value="22">22a</li>
     <li value="333">33a</li>
     <li value="44">44a</li>
           </ul>
    </div> 
    <script>
      var ul=document.getElementById("UlLi").getElementsByTagName("li");
                for(var i=0;i<ul.length;i++){
                   var cityid=ul[i].getAttribute("value");
       alert("cityid=="+cityid);
                
                }</script>
    </body>
    </html>
      

  2.   

    <script></script>
    放置到<div>后面html是逐行扫描的。
      

  3.   

    顺序问题。想放上面的话,你可以在你的js外面加个window.onload = function(){}
      

  4.   

    把JS  放到 body 结束标签后面就好了,html加载解析顺序是从上往下逐行解析的,按你这写法,当解析你取值的那行的时候,其实你索取对象还是没加载的,根本还不存在,所以取不到值