注意:test.innerHTML与实际内容并不相同<div id="test">
   <ul>
<li><a href="a1.htm">a1</a></li>
<li><a href="a2.htm">a2</a></li>
<li><a href="a3.htm">a3</a></li>
   </ul>
</div><script>
str = test.innerHTML;
alert(str);var arr = str.match(/<li>.*\s/ig);
alert(arr);
</script>

解决方案 »

  1.   

    最好这样:<div id="test">
       <ul>
    <li><a href="a1.htm">a1</a></li>
    <li><a href="a2.htm">a2</a></li>
    <li><a href="a3.htm">a3</a></li>
       </ul>
    </div><script>
    str = test.innerHTML;
    alert(str);var arr = str.split(/\s*<\/?li>\s*/gi);
    alert(arr);
    </script>
      

  2.   


    <div id="test">
       <ul>
             <li><a href="a1.htm">a1</a>
             <li><a href="a2.htm">a2</a>
             <li><a href="a3.htm">a3</a>
     </ul>
    </div>
    <script>
    var str= test.innerHTML;
    var aa=str.match(/<li>.*/ig);for(var i=0;i<aa.length;i++)
    {
    var ab=aa[i].match(/<li>(.*)(<\/li>|[\n\r])/i);
        if (ab)
        {
    alert(ab[1]);
        }
    }
    </script>用正则匹配DOM元素不是一个好方法,建议用DOM模型提取<li>内内容
      

  3.   

    蓝色的朋友建议我这样做
    ===============================================
    var li=test.getElementsByTagName("li");
    for(var i=0;i<li.length;i++)
    {
        alert(li[i].innerHTML);
    }