gfg<a href="../../../uuyyyuyu">fgf</a>gfgf<a href="./ghhgh/ghghgh" target="_blank">gfgfgfgfgf</a>gf<a href="../../yyy">gfg</a>f<script language="javascript" defer>var oInput=document.body.getElementsByTagName("A");
for (var i=0;i<oInput.length;i++){
alert(oInput[i].href);
}
</script>alert(oInput[i].href);得到的是绝对连接,我想获取"../../../uuyyyuyu","./ghhgh/ghghgh"这样的值,怎么获取?
for (var i=0;i<oInput.length;i++){
alert(oInput[i].href);
}
</script>alert(oInput[i].href);得到的是绝对连接,我想获取"../../../uuyyyuyu","./ghhgh/ghghgh"这样的值,怎么获取?
我需要对href的../的个数进行判断,然后处理连接,他给了我一个完整连接,我没有办法进行判断了,有可能../../../../../ddd.htm 这样的超出范围的连接,我们就没有办法获取href的真正内容
然后再正则吧
可以试试别的api,比如楼上的outHTML或者用node对象的属性来试试。
gfg<a href="../../../uuyyyuyu">fgf</a>gfgf<a href="./ghhgh/ghghgh" target="_blank">gfgfgfgfgf</a>gf<a href="../../yyy">gfg</a>f
<div id=d1></div>
<div id=d2></div>
<script>
if(!document.all){
if(window.Element && window.Element.prototype.__defineGetter__){
Element.prototype.__defineGetter__("outerHTML",function(){
return (new XMLSerializer()).serializeToString(this);
});
}}
var a=document.getElementsByTagName("A"); for(var i=0;i<a.length;i++){
s=a[i].outerHTML;
var re = new RegExp("<a[^>]*href=[\"\']?([^\"\' ]+)[\"\']?[^.]+>(.*)<\/a>","ig");
re.exec(s);
var zcyzzzm=RegExp.$1;//RegExp.$1就是你要的;
document.getElementById("d1").innerHTML+=zcyzzzm+"<br>";
re=null;
}
</script>