gpt4 book ai didi

javascript - getElementsByTagName 只获取顶级标签?

转载 作者:行者123 更新时间:2023-12-02 16:20:27 24 4
gpt4 key购买 nike

我遇到了这个非常奇怪的 js 问题。

总之,如果我使用(document.getElementsByTagName("p"))[0],我会得到一个找不到的元素

如果p标签位于 div 内像这样

<div id="main">
<p>see</p>
</div>

但是一旦我删除了 div 包装,一切就都正常了。

30 分钟后,我将问题简化为这个简单的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>ttttttttttttttttttttt</title>
</head>
<body>

<div id="main">
<p>see</p>
</div>

<script type="text/javascript">
var myobj = document.createElement("div");
myobj.innerHTML='yesyes';

document.body.insertBefore(myobj, (document.getElementsByTagName("p"))[0] );
</script>

</body>
</html>

将以上内容放入文件中。在 Firefox 或 Chrome 或 IE8 中打开。如果成功,您应该看到“yesyes”。如果删除 <div id="main">包装器,然后它就可以工作了。

似乎有一些我不明白的事情getElementsByTagName ??

最佳答案

getElementsByTagName无关,一切与insertBefore有关。试试这个:

document.getElementById('main').insertBefore(myobj, (document.getElementsByTagName("p"))[0] );​​

insertBefore 需要父元素。它不会按照您调用它的方式(在 body 上)运行,因此我只是查找“main”div。

关于javascript - getElementsByTagName 只获取顶级标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com