Javascript 具有document.links.length的奇怪输出
将以下内容保存在一个文件(例如file.htm)中,它将工作=>打印出“3”。 但是如果我取消注释“document.write”(“Hello:”);”行它不再工作(打印出“0”)。有人知道为什么吗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
<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(),也就是所谓的“锚定”标记,您的示例仅显示了这些标记,仅此而已。