文档.外部html中元素的getElementById



我有这个html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Notas</title>
    <script type="text/javascript" src="notas.js"></script>
</head>
<body>
    <p>Nombre alumno: </p>
    <input type="text" name="nombre" id="nombre">
    <p>Nota alumno:</p>
    <input type="text" name="nota">
    <p><br></p>
    <input type="button" name="boton" value="Enviar" onclick="respuesta()">
</body>
</html>

在另一个文件中:

function respuesta(){
    nombrej=document.getElementById("nombre");
    document.write(nombrej);
} 

问题是,当我点击按钮的消息是"null"我在论坛上看到了类似问题的解决方案,但我不知道该怎么做,因为有一个按钮。的帮助!

这里有几个问题:

  1. 您没有申报nombrej(不应该是nombre吗?)这意味着你的代码正在成为的牺牲品隐含全局变量的恐怖 (这是我博客上的一篇文章)

  2. 设置nombrejHTMLInputElement。您可能需要它的值,它在value属性上。

  3. 一旦页面完成,调用document.write将隐式调用document.open,这将擦除页面并将其替换为您所写的内容。

所以respuesta可能看起来像这样:

function respuesta(){
    var nombrej=document.getElementById("nombre").value;
//  ^^^--- #1                                    ^^^^^^--- #2
    console.log(nombrej);
//  ^^^^^^^^^^^--- #3
} 

旁注:我看到你把你的script标签在head部分。你会发现很多人这样做,并告诉你这样做,但这是一种反模式。除非您有特殊的理由做其他事情,否则请将script标记放在body的末尾,就在关闭</body>标记之前。

JavaScript getElementById返回DOM元素。要获取文本输入的值,您需要获取它的值。

代替:nombrej = . getelementbyid("数量");

使用:nombrej = . getelementbyid("数量")value;

示例:JavaScript:如何获取文本输入字段的值?

最新更新