Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript alert()不适用于文档方法_Javascript_Html_Alert - Fatal编程技术网

Javascript alert()不适用于文档方法

Javascript alert()不适用于文档方法,javascript,html,alert,Javascript,Html,Alert,一个非常简单的程序,但我不知道为什么它不能被执行 这是我的HTML文件:- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> <head> <script type="tex

一个非常简单的程序,但我不知道为什么它不能被执行

这是我的HTML文件:-

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<script type="text/javascript" src="example.js"></script>
<title>Tag Name Locator</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>
There are 3 different types of element in this body:
</p>
<ul>
<li>paragraph</li>
<li>unordered list</li>
<li>list item</li>
</ul>
</body>
</html>
加载浏览器时,它会正确显示


有什么答案吗?

在结束正文之前添加您的
js

    ...
    ...
    <script type="text/javascript" src="example.js"></script>
    </body>
。。。
...
看看当你加入head时会发生什么


查看添加到body时发生的情况

将JS文件脚本放在底部

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>

<title>Tag Name Locator</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p>
There are 3 different types of element in this body:
</p>
<ul>
<li>paragraph</li>
<li>unordered list</li>
<li>list item</li>
</ul>
</body>
</html>
<script type="text/javascript" src="example.js"></script>

标记名定位器

此主体中有3种不同类型的元素:

  • 段落
  • 无序列表
  • 列表项

在DOM元素未准备就绪的情况下,警报未调用到期js文件先执行。最好使用jQuery获得相同的..

在DOM完全加载之前激发的javascript(如果脚本包含在头中)中的代码。因此listItems.length最初为0,因此不会显示警报。所以您需要将该javascript代码放入一个函数中,并在body标记的onload事件上调用该函数。像这样

在HTML中

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<script type="text/javascript" src="example.js"></script>
<title>Tag Name Locator</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body onload="PageLoaded()">
<p>
There are 3 different types of element in this body:
</p>
<ul>
<li>paragraph</li>
<li>unordered list</li>
<li>list item</li>
</ul>
</body>
</html>

标记名定位器

此主体中有3种不同类型的元素:

  • 段落
  • 无序列表
  • 列表项
在JS中

函数PageLoaded()
{
var listItems=document.getElementsByTagName(“li”);
对于(变量i=0;i
您的javascript在完全构建之前就被调用了。因此,它不知道这些锂元素的存在。加载文档后,需要调用此javascript:

window.onload = function()
{
    var listItems = document.getElementsByTagName("li");
    for (var i = 0; i < listItems.length; i++)
    {
        alert(listItems[i].nodeName);
    }
}
window.onload=function()
{
var listItems=document.getElementsByTagName(“li”);
对于(变量i=0;i
或者按照许多人的建议,将其写在页面底部,这将确保在将这些文件加载到DOM中后执行


jsiddle:

将脚本放在页面末尾

<body style="height:700px" >
    <p>
        There are 3 different types of element in this body:
    </p>
    <ul>
        <li>paragraph</li>
        <li>unordered list</li>
        <li>list item</li>
    </ul>
</body>
<script type="text/javascript" src="example.js"></script>


此主体中有3种不同类型的元素:

  • 段落
  • 无序列表
  • 列表项

请用脚本标记显示完整的javascript代码。如果该循环在example.js中,请将其包装到一个方法中,并在bodyThank的
onload
中调用该方法。所有的建议都很有效!刚从DOM开始,所以我没有意识到这一点。
function PageLoaded()
{
   var listItems = document.getElementsByTagName("li");
   for (var i = 0; i < listItems.length; i++)
    {
      alert(listItems[i].nodeName);
    }
}
window.onload = function()
{
    var listItems = document.getElementsByTagName("li");
    for (var i = 0; i < listItems.length; i++)
    {
        alert(listItems[i].nodeName);
    }
}
<body style="height:700px" >
    <p>
        There are 3 different types of element in this body:
    </p>
    <ul>
        <li>paragraph</li>
        <li>unordered list</li>
        <li>list item</li>
    </ul>
</body>
<script type="text/javascript" src="example.js"></script>