日期:2014-05-18  浏览次数:20415 次

javascript 取得页面中 <A href="abc.html">link</a> 中的 href的值
javascript   取得页面中   <A   href= "abc.html "> link </a>   中的   href的值

我要取得的是   abc.html  
下面是我的方法:

var   count   =   document.getElementsByTagName( 'A ').length
var   allA   =   document.getElementsByTagName( 'A ');

for(var   i   =   0   ;   i <   count   ;   i++   )
{
window.alert(allA[i].href)   ;
}
这样取出的值是   http://******/abc.html   类似的绝对地,
我要取取得的是相对地址   "abc.html "

盼望高手指点.
在些先行谢过.

------解决方案--------------------
1。
是的, href 返回的是完整路径

2。
方法1, 自己手动处理

3。
方法2, 投机的方法,对 a 标签添加一个自定义的 myhref, 设置与 href 对应的值

<a href= "JSHref.aspx " myhref= "JSHref.aspx "> JSHref.aspx </a>
<asp:hyperlink ID= "lnk " NavigateUrl= "JSHref.aspx " myhref= "JSHref.aspx " runat= "server "> JSHref.aspx </asp:hyperlink>

var count = document.getElementsByTagName( 'A ').length
var allA = document.getElementsByTagName( 'A ');

for(var i = 0 ; i < count ; i++ )
{
window.alert(allA[i].href) ;
window.alert(allA[i].myhref) ;
}
------解决方案--------------------
<script>
window.onload=function (){
var str = document.form1.innerHTML;

// alert(str);
var regEx = new RegExp( " <a\\s[^\ "\ ']*href=([\ "\ ']*)([^\ "\ ']*)\\1 ", "gi ");
alert(str);
alert(regEx.test(str));
//var list=str.match(regEx);
var val;
while(val=regEx.exec(str))
{
//alert( "x ");
alert(val[2]);

}
}
</script>

先拿到页面的innerHTML

然后正则之。。。

<form id= "form1 " runat= "server ">
<div>
<a href= "ttt "> </a> <a href= "ttt "> </a> <a href= "ttt "> </a> <a href= "ttt "> </a> <a href= "ttt "> </a> <a href= "ttt "> </a> <a href= "ttt "> </a>
</form>
------解决方案--------------------
这位仁兄试一下:
allA[i].getAttribute( "href ")
或者
allA[i].getAttribute( "href ").value