外部JavaScript访问html元素并给变量赋值
External JavaScript accessing html elements and assigning to a variable
我开始使用JavaScript,我不明白为什么我不能将HTML属性描述分配给外部JavaScript函数中的变量。当在HTML页面内工作时,它会正常工作,但不会在外部脚本中工作,因为我分配的变量测试为未定义。
function NewFunction() {
var x = document.getElementById("Year").href;
//var x="hello"
if (x === undefined) {
alert("x is undefined");
} else {
alert("x is defined");
}
document.getElementById("demo").innerHTML = x;
我可以改变demo,如果我使用var x="hello"。但是如果我尝试分配x document.getElementById("年份")。Href返回的报告为未定义。这段代码作为本地脚本在源页面中运行良好。
我错过了一些东西,因为它似乎你不能分配一个变量,从HTML页面读取信息。
我错过了什么?由于
加载脚本时可能出现的问题。当DOM准备好时,只需调用您的函数(参见事件DOMContentLoaded获取更多信息)。
document.addEventListener("DOMContentLoaded", function(event) {
NewFunction()
});
下面是你的代码(与DOM就绪函数调用),一切似乎工作得很好。试着与我们的实际代码进行比较。
function NewFunction() {
var x = document.getElementById("Year").href;
//var x="hello"
if (x === undefined) {
alert("x is undefined");
} else {
alert("x is defined");
}
document.getElementById("demo").innerHTML = x;
};
document.addEventListener("DOMContentLoaded", function(event) {
NewFunction()
});
<a href='123' id='Year'>123</a>
<p id='demo'>123</p>
祝你好运!
您必须将<script>
标记放在body的末尾,或者在load
或DOMContentLoaded
侦听器中执行您的功能。
您的javascript代码可能在您的DOM (html页面)加载之前运行。您需要将代码包装在onload
函数周围:
window.onload = function() {
var x = document.getElementById("Year").href;
//var x="hello"
if (x === undefined) {
alert("x is undefined");
} else {
alert("x is defined");
}
document.getElementById("demo").innerHTML = x;
};
相关文章:
- Javascript变量赋值|
- 如何在javascript中为全局变量赋值
- 我可以在javascript中的回调函数中为变量赋值吗
- JavaScript 变量赋值的行为令人惊讶
- 为什么 Javascript 在变量赋值时将 null 转换为字符串
- JavaScript: 变量赋值 in for 语句 |在前面或里面
- 我可以将变量赋值为数组值吗?
- 变量赋值无效
- 一行中的多个变量赋值
- Javascript中的多变量赋值
- 如何根据 IF 句子和警报为变量赋值?.JS
- 无法为变量赋值 - Javascript
- 为所有以特定字符串开头的变量赋值
- Javascript中多变量赋值的正确方法
- 条件变量赋值的最佳方法
- 在 JavaScript 中是否有一个严格等价的 ||在变量赋值中使用时
- 在 JavaScript 中,未声明的变量赋值可以在函数范围之外访问
- 使用Javascript,变量赋值上下文中的表达式与上下文外的表达式有什么区别
- JavaScript 变量赋值
- 当我为 PHP 变量赋值时,是否可以调用 JavaScript 函数