gpt4 book ai didi

Javascript:将变量设置为 nodeValue 不起作用

转载 作者:行者123 更新时间:2023-11-28 02:41:15 25 4
gpt4 key购买 nike

我在设置变量时遇到问题,并且找不到任何有用的文档。

这有效:

<!DOCTYPE html>
<html>
<body onload="alert(document.getElementById('foo').firstChild.nodeValue)">
<a id="foo" href="old">Foobar</a>
</body>
</html>

但这不起作用:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var theText = document.getElementById('foo').firstChild.nodeValue ;
</script>
</head>
<body onload="alert(theText)">
<a id="foo" href="old">Foobar</a>
</body>
</html>

警报显示“未定义”。我真正想做的是这样的事情,但这也行不通:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var theElement = document.getElementById('foo') ;
var theText = theElement.firstChild.nodeValue ;
document.write(theElement.getAttribute('href')) ;
theElement.setAttribute('href', theText) ;
document.write(meta.getAttribute('href')) ;
</script>
</head>
<body>
<a id="foo" href="old">Foobar</a>
</body>
</html>

为什么这不起作用?

最佳答案

当您的脚本运行时,foo 元素不存在。如果您检查 JavaScript 控制台,您应该会看到一个错误,大致如下:

Uncaught TypeError: Cannot read property 'firstChild' of null

您会收到此错误,因为如果找不到您要查找的元素,getElementById 将返回 null

您需要在标记后执行 JavaScript 代码。将 script 标记移至 body 底部,或将其放入 DOM 就绪/加载事件处理程序中。例如:

<body onload="alert(theText)">
<a id="foo" href="old">Foobar</a>
<!-- Now the `foo` element actually exists, our script can find it -->
<script type="text/javascript">
var theText = document.getElementById('foo').firstChild.nodeValue;
</script>
</body>

关于Javascript:将变量设置为 nodeValue 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12619010/

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