这是一个示例代码 我希望收到一个警告" undefined"而不是脚本崩溃 我怎样才能使它发挥作用?
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Click me</button>
<!-- <input type="text" id="demo"></input> -->
<script>
function myFunction() {
var message = document.getElementById("demo").value;
if ( message ) alert (message);
else alert ("undefined");
}
</script>
</body>
</html>
答案 0 :(得分:0)
如错误消息所示,您无法从value
读取属性null
。如果找不到该元素,则getElementById
会返回null
。所以你需要防范:
var element = document.getElementById("demo");
var message = element && element.value;
if (message !== null) {
alert(message);
} else {
alert("undefined");
}
如果元素不存在,则 message
将为null
,如果元素为value
(可能为""
),则为<{1}}
或者没有message
:
var element = document.getElementById("demo");
if (element) {
alert(element.value);
} else {
alert("undefined");
}
答案 1 :(得分:0)
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Click me</button>
<!-- <input type="text" id="demo"></input> -->
<script>
function myFunction() {
var message = undefined
if (document.getElementById("demo"))
message = document.getElementById("demo").value;
if ( message ) alert (message);
else alert ("undefined");
}
</script>
</body>
</html>
答案 2 :(得分:0)
检查以下代码
<button onclick="myFunction()">Click me</button>
<!-- <input type="text" id="demo"></input> -->
<script>
function myFunction() {
if (document.getElementById("demo"))
var message = document.getElementById("demo").value;
if ( message ) alert (message);
else alert ("undefined");
}
</script>
</body>
</html>
答案 3 :(得分:0)
在这种情况下,document.getElementById("demo")
的值为null
,因此没有属性value
为null。这就是你的脚本破解的地方。
尝试放
var message = document.getElementById("demo") && document.getElementById("demo").value;
答案 4 :(得分:0)
如果您的代码是:
,则会收到“未定义”的提醒var message = document.getElementById("demo");
因为没有带有这种id的元素。
但是尝试访问不存在的元素的成员是错误的。