步骤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;
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;
<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>
比如找到这个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);
是这个意思吗?
所以说不是在HTML页面(文档对象模型dom)的环境下,因为无法利用createElement。另外,即使可以用element, 类似'</span>11111<span>222</span>'这样不完整的字符串如果innerHTML进去,会自动补全缺失的节点变成'<span></span>11111<span>222</span>';反而会更加混乱。因为要考虑到的因素很多,不是单纯用正则匹配就能写出来的,所以来CSDN求助的说Orz
多谢大家,我结贴了哦~~