<body>
<a href="http:-//www.google.-cn"><span style="color: #000000">Google</span></a>
<script language="javascript">
var adr = "";
for( n in document.links ) // 遍历超级链接集合
{
if( document.links.length == document.links[n] )// 忽略集合的第一个元素,因为表示集合的元素个数
{
continue; // 直接下一轮循环
}
// 提取链接名和网址,添加到字符串中
adr += document.links[n].childNodes[0].childNodes[0].toString() + ":\t"+ document.links[n] + "\n";
}
alert( adr ); // 对话框输出显示
</script>
</body>
问下,document.links[n].childNodes[0].childNodes[0].toString()什么意思?DOM但是还是不懂。前高手指点,谢谢!
document.links[n].childNodes[0]==SPAN
document.links[n].childNodes[0].childNodes[0]==SPAN里面的文本节点
这个遍历代码再firefox下出错了,firefox下会有length和item属性,而且在最后,比ie多length,并且获取文本内容要使用nodeValue,而不是toString
JScript code
var adr = "";
for(var i=0,j=document.links.length;i<j;i++){
adr += document.links[i].childNodes[0].childNodes[0].nodeValue + ":\t"+ document.links[i] + "\n";
}
alert( adr ); // 对话框输出显示
document.links[n].childNodes[0].childNodes[0].toString()
document.links[n] 获取第N个a
document.links[n].childNodes[0] 获取第N个a第一个节点
document.links[n].childNodes[0].childNodes[0] 获取第N个a第一个节点的第一个节点
toString()返回字符串形式 正常情况等同于valueof
先将你的:
document.links[n].childNodes[0].childNodes[0].toString()[PS:获取节点文本,这里应该是nodeValue,而不是toString()]
变更为
document.links[i].childNodes[0].innerHTML
//i是数组下标,从0开始
document.links[i] 获取第i个a
document.links[i].childNodes[0] 获取第i个a下面的第一个节点,因些我们得到了<span></span>
document.links[i].childNodes[0].innerHTML 获取第i个a下面的第一个节点的文本内容.即获取第一个<span>标签内的内容