Javascript 具有document.links.length的奇怪输出

Javascript 具有document.links.length的奇怪输出,javascript,hyperlink,Javascript,Hyperlink,将以下内容保存在一个文件(例如file.htm)中,它将工作=>打印出“3”。 但是如果我取消注释“document.write”(“Hello:”);”行它不再工作(打印出“0”)。有人知道为什么吗 <html> <head> <script language="JavaScript" type="text/javascript"> function display() { //document.write("Hello: "); docum

将以下内容保存在一个文件(例如file.htm)中,它将工作=>打印出“3”。 但是如果我取消注释“document.write”(“Hello:”);”行它不再工作(打印出“0”)。有人知道为什么吗

<html>
<head>
<script language="JavaScript" type="text/javascript">
function display() {
    //document.write("Hello: ");
    document.write(document.links.length + "<br>");
}
</script>
</head>
<body onload="display()">

<A href="link0.htm">Link 0</A>
<A href="link1.htm">Link 1</A>
<A href="link2.htm">Link 2</A>

</body>
</html>

函数显示(){
//写(“你好:”);
document.write(document.links.length+“
”); }
首先,不要使用document.write()来“显示”输出。如果这只是一个测试,请使用alert()方法。document.write()只应在加载页面时使用。一旦关闭流并加载文档,document.write()将产生不可预测的结果


其次,不要使用document.links,而是尝试使用document.getElementsByTagName(“A”)。这将为您提供文档中所有锚定标记的数组。

首先,不要使用document.write()来“显示”您的输出。如果这只是一个测试,请使用alert()方法。document.write()只应在加载页面时使用。一旦关闭流并加载文档,document.write()将产生不可预测的结果


其次,不要使用document.links,而是尝试使用document.getElementsByTagName(“A”)。这将为您提供文档中所有锚定标记的数组。

在Chrome中,我观察到这种行为,大多数其他浏览器也可能观察到这种行为。原因如下:

如果没有第一个
文档。write
,它将按预期工作。这里没什么特别的


但是,当您包含第一个
document.write
时,它会覆盖文档的全部内容,因此不会留下任何链接。第二个
文档。write
正确地报告文档中有0个链接。

在Chrome中,我观察到这种行为,大多数其他浏览器也可能观察到这种行为。原因如下:

如果没有第一个
文档。write
,它将按预期工作。这里没什么特别的


但是,当您包含第一个
document.write
时,它会覆盖文档的全部内容,因此不会留下任何链接。第二个
document.write
正确报告文档中有0个链接。

因为当您第一次调用
document.write
时,它会从DOM中删除所有链接。它将
document.body
的整个innerHTML替换为“Hello:”


您不应该使用
document.write

因为当您第一次调用
document.write
时,它会删除DOM中的所有链接。它将
document.body
的整个innerHTML替换为“Hello:”


你不应该使用
文档。无论如何写

实际上是在打这个!非常好,不要使用document.write。曾经。我在IE、Firefox和Chrome上试用过。我认为你是正确的,你的解释很清楚。谢谢实际上是在打字!非常好,不要使用document.write。曾经。我在IE、Firefox和Chrome上试用过。我认为你是正确的,你的解释很清楚。谢谢它可能对其他标记有用,但如何计算文档中带“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”的标记数?您没有问这个问题。您询问了links(),也称为“锚定”标记,您的示例仅显示了这些标记,仅此而已。我的示例精确计算了锚定标记的数量。这可能对其他标记有用,但如何计算文档中带有“\uuuuuuuuu”的标记数?您没有问这个问题。您询问了links(),也就是所谓的“锚定”标记,您的示例仅显示了这些标记,仅此而已。