var str = "<div id='demo1'>内容1<span>1</span></div><br><hr><input><span></span><div id='demo2'>内容2</div><br><hr><input><span></span><div id='demo3'>内容3</div><div id='demo4'>内容4</div><br><hr><input><span></span><div id='demo5'>内容5</div>"
差不多和这一样的字符串
可以用一些程序  但尽量用正则
返回的结果 是一个array   a
a[0][0]  为 demo1  a[0][1] 为 内容1<span>1</span>
a[1][0]  为 demo2  a[1][1] 为 内容2
a[2][0]  为 demo3  a[0][1] 为 内容3
a[3][0]  为 demo4  a[0][1] 为 内容4
a[4][0]  为 demo5  a[0][1] 为 内容5
(其实就是找出所有div的id 和 innerHTML )

解决方案 »

  1.   

    var str = "<div id='demo1'>内容1<span>1</span></div><br><hr><input><span></span><div id='demo2'>内容2</div><br><hr><input><span></span><div id='demo3'>内容3</div><div id='demo4'>内容4</div><br><hr><input><span></span><div id='demo5'>内容5</div>"var reg=/<div\s+id=('|")(\w+)\1\s*>(.*?)<\/div>/gi;
    var id,title,ret=[];while(reg.exec(str)){
        id=RegExp.$2;
        title=RegExp.$3;
        
        if(id&&title){
            ret.push([id,title]);
        }
    }for(var i=0,len=ret.length;i<len;i++){
       alert(ret[i][0]+":"+ret[i][1]);
    }
      

  2.   

    var str = "<div id='demo1'>内容1<span>1</span></div><br><hr><input><span></span><div id='demo2'>内容2</div><br><hr><input><span></span><div id='demo3'>内容3</div><div id='demo4'>内容4</div><br><hr><input><span></span><div id='demo5'>内容5</div>";
    var arr = str.match(/\<div[^i]*id=\'[^\']*\'\>.*?\<\/div\>/g),a=[];
    for(var i=0,l=arr.length;i<l;i++)
    a.push([/\<div[^i]*id=\'([^\']*)\'\>/.exec(arr[i])[1],/\<div[^i]*id=\'([^\']*)\'\>(.*?)\<\/div\>/.exec(arr[i])[2]])
    //--------------------------------------------test-------
    for(var i=0,l=a.length;i<l;i++)
    alert(a[i][0]+"  "+a[i][1]);