求解!怎么在一段HTML代码中定位一个标签
求解!如何在一段HTML代码中定位一个标签?
一段HTML代码:
var str = "aaaa<span>bbbb</span>00000<span>111<span>222<span class="6">333<span>444</span>333<span>ccccc</span>333</span>222</span>111</span>00000";
里面包含不确定数量的<span> </span> 标签(而且有的互相嵌套);
请问如何找到与 <span class="xxx"> 闭合的那个 </span>
这个我记得以前有过解决方法,大体是用 indexOf 循环查找,不过效率不高。
有没有更高效的办法呢?
------解决方案--------------------
步骤
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"的ELEMENT
var spans=getElementsByClass("xxx",d,"span")
alert(spans.innerHTML)
4.销毁d
d=null;
------解决方案--------------------
利用DOM去找
一段HTML代码:
var str = "aaaa<span>bbbb</span>00000<span>111<span>222<span class="6">333<span>444</span>333<span>ccccc</span>333</span>222</span>111</span>00000";
里面包含不确定数量的<span> </span> 标签(而且有的互相嵌套);
请问如何找到与 <span class="xxx"> 闭合的那个 </span>
这个我记得以前有过解决方法,大体是用 indexOf 循环查找,不过效率不高。
有没有更高效的办法呢?
------解决方案--------------------
步骤
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"的ELEMENT
var spans=getElementsByClass("xxx",d,"span")
alert(spans.innerHTML)
4.销毁d
d=null;
------解决方案--------------------
利用DOM去找
- HTML code
<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>
------解决方案--------------------
现在才看懂楼主的意思,原来楼主是想把某个变量里的值进行replace,我正则不行,帮你顶一下。