你知道为什么当我尝试使用它时我的身体标签/元素仍然是空的吗?我有以下代码:
<!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("*")
确实会在断点处给出元素列表,但是,当我要求时让代码运行会出错
document.getElementsByTagName("*")[20].children[1].children[0].children[1].innerHTML = "hiephoi";
它说document.getElementsByTagName("*")[20].children
不是对象,实际上它是未定义的。你可能想知道我为什么要使用通配符,但是仅仅寻找任何特定的标签什么都不会返回。奇怪的是,通配符确实返回了一个节点列表。我可以尝试使用 JQuery,但我试图理解这一点。我认为这可能与文档的加载阶段有关?或者可能是 html 在某处包含丢失的标签而 JS 感到困惑?