步骤1.引用getElementsByClass的函数if(!getElementsByClass){var getElementsByClass=function(searchClass,node,tag){
var classElements=new Array();
if (!node){node=document;}
if (!tag){tag='*';}
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
for(var i = 0,j = 0; i < elsLen; i++) {
if( pattern.test(els[i].className)){classElements[j] = els[i];j++;}
}
return classElements;
};}
2.创建一个DIV,并插入值
var d=document.createElement("div");
d.innerHTML=str;3.取到class="xxx"的ELEMENTvar spans=getElementsByClass("xxx",d,"span")
alert(spans.innerHTML)4.销毁d
d=null;

解决方案 »

  1.   

    利用DOM去找
    <script language="javascript" > var str = "aaa <span >bbbb </span >00000 <span >111 <span >222 <span class='6' >333 <span >444<span>34343</span> </span >333 <span >ccccc </span >333 </span >222 </span >111 </span >00000"; 
    var div = document.createElement("div");
    div.innerHTML = str;
    findSpanTag(div);
    alert(resultStr);
    var resultStr = "";function findSpanTag(obj)
    {   
         for(var i=0;i<obj.childNodes.length;i++)
         {
            var element = obj.childNodes[i];
            if(element.nodeType==1)
            {
                if(element.tagName=="SPAN")
                {
                    if(element.className=="6") //找到则返回
                    {
                        resultStr=element.outerHTML;
                        return true;
                    }
                    if(element.childNodes.length!=0)  
                    {
                        findSpanTag(element); //递规调用
                    }
                }
            }
         }
         return false;
     }
     </script>
      

  2.   

    第一次看到getElementsByClass,有这个东西的啊?怎么用啊?
      

  3.   

    不好意思我没说清楚,是只能在这段 HTML 代码里定位,不是在 HTML 页面里…………
      

  4.   

    定位是什么意思?找到这个SPAN我给的方法不就是这样的吧,是js出里的啊,的确"不是在 HTML 页面里"啊
      

  5.   

    您的方法用到了innerHTML,我是打算找到字符串里面的这个 span 之后还需要 replace 成其他的标签。
      

  6.   

    我服了你了.....
    比如找到这个span,并替换成div的var d=document.createElement("div"); 
    d.innerHTML=str; 
    var spans=getElementsByClass("xxx",d,"span")
    var ele=spans[0];
    var ns=document.createElement("div");
    ns.className="xxx";
    ns.innerHTML=ele.innerHTML;
    ele.parentNode.insertBefore(ns,ele);
    ele.parentNode.removeChild(ele);
    是这个意思吗?
      

  7.   

    汗,不是操作dom,是要操作字符串呀………
    所以说不是在HTML页面(文档对象模型dom)的环境下,因为无法利用createElement。另外,即使可以用element, 类似'</span>11111<span>222</span>'这样不完整的字符串如果innerHTML进去,会自动补全缺失的节点变成'<span></span>11111<span>222</span>';反而会更加混乱。因为要考虑到的因素很多,不是单纯用正则匹配就能写出来的,所以来CSDN求助的说Orz
      

  8.   

    现在才看懂楼主的意思,原来楼主是想把某个变量里的值进行replace,我正则不行,帮你顶一下。
      

  9.   

    hmmmm,自己解决了哦也= v =/
    多谢大家,我结贴了哦~~