Javascript body标记未定义或为空
你知道为什么我的body标签/元素在我尝试使用它时仍然是空的吗?我有以下代码:Javascript body标记未定义或为空,javascript,html,dom,getelementsbytagname,Javascript,Html,Dom,Getelementsbytagname,你知道为什么我的body标签/元素在我尝试使用它时仍然是空的吗?我有以下代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/> <tit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<title>Max</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
<script>
alert(document.getElementsByTagName("*"));
function se(){
var twenty = document.getElementsByTagName("*")[20];
//twenty.children[1].children[0].children[1].innerHTML = "hiephoi";
}
se();
var fg = document.getElementsByTagName("body")[0];//undefined
</script>
</head>
<body>
<script>
alert(document.getElementsByTagName("*"));
function se(){
var twenty = document.getElementsByTagName("*")[20];
//twenty.children[1].children[0].children[1].innerHTML = "hiephoi";
}
se();</script>
:
:
:
它表示document.getElementsByTagName(“*”[20]。children
不是对象,实际上它是未定义的。你可能想知道为什么我会使用通配符,但是仅仅查找任何特定的标记都不会返回任何结果。奇怪的是,通配符确实返回了一个节点列表。
我可以尝试使用JQuery,但我正在努力理解这一点。
我想这可能与文档的加载阶段有关?
或者可能是html在某个地方包含丢失的标记,而JS变得混乱?您正在尝试在创建DOM树之前获取元素。将javascript放在末尾,在结束体标记之前,看看它是否有效(未测试。出于同样的原因,它仍然可能不起作用) 更好的方法是,查看
window.onload
以确保在尝试读取DOM之前加载了DOM
document.getElementsByTagName("*")[20].children[1].children[0].children[1].innerHTML = "hiephoi";