好久没碰了,原来javascrip这么难。

解决方案 »

  1.   

    alert(data.replace(/<p[^>]*>([\s\S]*)<\/p>/ig,"$1"));
    试试这个
      

  2.   

    晕,干吗要这么做?直接使用getelementsbytagname不就可以了吗?
      

  3.   

    var selected = document.selection.createRange();
    你这个是得选择,没有选择就值了
      

  4.   

    function a()
    {
        var ps=document.getElementsByTagName('p');
        var s='';
        for(var i=0;i<ps.length;i++)
        {
            if(i==(ps.length-1))
                s+=ps[i].innerHTML;
            else
                s+=ps[i].innerHTML+'##';
        }
        var arr=s.split(/##/);
        alert(arr);
    }
      

  5.   

    <script>
    var str = '<span><p id="p1">思想总在经历和压力中成熟等等等等的风格大方过方反水电费是否是大方复复反反复等的说待遇很投入一提</p><p id="p2">但是</p><p id="p3">按时打算地方撒通过热吧</p></span>';
    var reg = /<p.*?>(.+?)<\/p>/ig, arr = [], tem;
    while(tem = reg.exec(str)){
    if(tem[1])arr.push(tem[1]);
    }
    alert(arr.join('\n'));
    </script>
      

  6.   

    <html>
    <head> 
    </head> 
    <body> 
    <span onMouseUp="getData()"> 
    <p id="p1">思想总在经历和压力中成熟等等等等的风格大方过方反水电费是否是大方复复反反复等的说待遇很投入一提</p> 
    <p id="p2">但是</p> 
    <p id="p3">按时打算地方撒通过热吧</p> 
    </span> 
    <script type="text/javascript">
        var sText=document.getElementsByTagName("span")[0].innerHTML;
        alert(sText);
        var oReg=/<p.*?>[\S\s]+?<\/p>/mgi;
        alert(sText.match(oReg)
                   .join("|")
                   .replace(/<.*?>/gi,"")
                   .split("|"));
    </script>
    </body> 
    </html>
      

  7.   

    都不对,我要是<p></p>标签中还有嵌套的标签,就又把其标签名称存入数组了,例如:
    <p id="p2">总在经历和<b>压力</b>中成熟!~</p>
    需要把<b></b>也过滤掉!~
      

  8.   

    <script>
    var str = '<span><p id="p1">思想总</p><p>在经<b>历和</b>压力中成熟等等等等的风格大方过方<b>反水</b>电费是否是大方复复反反复等的说待遇很投入一提</p><p id="p2">但是</p><p id="p3">按时打算地方撒通过热吧</p></span>';
    var reg = /<p.*?>(.+?)<\/p>/ig, arr = [], tem;
    while(tem = reg.exec(str)){
        if(tem[1])arr.push(tem[1].replace(/<.*?>/g,'')); // 得到引用同时替换p内标签
    }
    alert(arr.join('\n'));
    </script>
      

  9.   

    问题是:找到数组arr中存储的元素后,选中页面中包含有数组arr中的元素。
    我刚想用循环,每循环一次,遍历页面中的文本,一旦找到与本次循环中的数组元素值的话,选中页面中的文本。但是循环不行!等待新的思路。
    function findString()
    {
     var  TRange=null;
     var str = '<span><p id="p1">思想总</p><p>在经<b>历和</b>压力中成熟等等等等的风格大方过方<b>反水</b>电费是 否是大方复复反反复等的说待遇很投入一提</p><p id="p2">但是</p><p id="p3">按时打算地方撒通过热吧</p></span>';
     while(tem = reg.exec(str))
          {
          if(tem[1])arr.push(tem[1].replace(/<.*?>/g,''));       }
     if(TRange != null) 
     {
      TRange.collapse(false);
        for(var i=0;i<arr.length;i++)
          {
     //alert(arr[i]);
     strFound = TRange.findText(arr[i]);
             if(strFound) 
             TRange.select(); //选中页面中指定的文本。
           }  }
      else  if(TRange == null||strFound == 0) 
             {
               TRange = self.document.body.createTextRange();
               for(var i=0;i<arr.length;i++)
               {
         //alert(arr[i]);
         strFound = TRange.findText(arr[i]);
                 if(strFound) 
                 TRange.select(); //选中页面中指定的文本。
               }
             }  
    }
    这样出来的效果不对,选中3个<p></p>中的内容后,for循环3次,alert弹出3次,确定第一次选中的内容后,弹出的数组中的内容在页面中被选中,然后又弹出一次数组中的第二个元素,确定后弹出的窗口后,页面中和第二次弹出的内容一样的文本被选中,同时第一次被选中的文本消失....这个问题该怎样避免?或者有什么新的思路?首次载入页面:确定第一个弹出窗口后:确定第二个弹出窗口后:确定第三个弹出窗口后:http://j.thec.cn/tdy218/img/last.jpg
      

  10.   

    这是肯定的,不用程序也不能同时选中不相连的内容啊不知道你想实现什么, 直接定义P元素的class改变样式, 可以模仿选中的状态...
      

  11.   

    不用程序也不能同时选中不相连的内容啊? 
    要是能用:TRange.select();最好了!~