已写出一些代码,但不能完成查找到多个配对的功能,有兄弟说可以记录下前一个<class>的位置,然后从这个位置往后找,可是调试了半天没有成功,请大家指教一下,谢谢
<html>
<body>
<class>1234</class>ffff<class>5678</class><br><class>9876</class>
</body>
</html>
<script>
function IndexDemo(str2){ 
var str1 = document.body.innerHTML;
    var s = str1.indexOf(str2); 
    return(s); 
   } 
function substr()
{
var index1 = IndexDemo("<CLASS>") + "<CLASS>".length;
var leng = IndexDemo("</CLASS>") - IndexDemo("<CLASS>");

var str1 = document.body.innerHTML;
var str = str1.substring(index1 , leng);
return str;
}alert( substr() );
</script>

解决方案 »

  1.   

    <html>
    <body>
    <class>123456789</class><br>
    <br>
    </body>
    </html>
    <script>
    function IndexDemo(str2){ 
    var str1 = document.body.innerHTML;
        var s = str1.indexOf(str2); 
        return(s); 
       } 
    function substr()
    {
    var index1 = IndexDemo("<CLASS>") + "<CLASS>".length;
    var leng = IndexDemo("</CLASS>") - IndexDemo("<CLASS>");

    var str1 = document.body.innerHTML;
    var str = str1.substring(index1 , leng);
    return str;
    }alert( substr() );
    </script>
      

  2.   

    <script language="javascript">
    var list=[]
    var i=0;
    document.body.innerHTML.replace(/<class>(.*?)<\/class>/gim,function(){list[i++]=arguments[1]})
    alert(list)
    </script>简单些可以用var list=document.body.innerHTML.match(/<class>.*?<\/class>/gim);
    不过带着<class> ,再用var str=list[i].substring(7,list[i].length-8)截取
      

  3.   

    非常感谢fosjos(无聊的菜鸟程序员),现在如果希望,将每一个配对中的字符串内容单独alert出来,用你所给出的var str=list[i].substring(7,list[i].length-8)截取,这个怎么用,是要放在一个循环中的吗?
      

  4.   

    我的需求更改一下,是这样,我需要找到配对的内容后,将找到的字符串更新为"abcd"字符串,这样怎么做呢.就是说:<class>123</class><class>4563</class><br>fdasfc<class>789</class>找到了这些内容后,将123更换为abcd,以此类推一样。谢谢
      

  5.   

    document.body.innerHTML = 
    document.body.innerHTML.replace(/(<class>)(.*?)(<\/class>)/gim,"$1abcd$3");