0

所以我试图获取 HTML 文本框的值或内容。我尝试了各种类型的方法,但都没有奏效。根据调试器,代码在 getelementbyid 方法处停止。注释行是我已经尝试过的方法。它们中的一些返回 null 而其中一些返回 NaN 并且大多数只返回一个空白页。非常感谢您的帮助。

<html>
<head>
<script type="text/javascript" >
function calculateit(){
document.open();
var number = document.getElementsByName('xyz')[0].value

//var number = document.getElementsByName("xyz").value;
//var number = document.getElementsByName('xyz').value;
//var number = document.getElementsByName("xyz");
//var number = document.getElementsByName('xyz');

//var number = document.getElementsById("xyz").value;
//var number = document.getElementsById('xyz').value;
//var number = document.getElementsById("xyz");
//var number = document.getElementsById('xyz');

//var number = document.form1.xyz.value;  //form 1 was my form name and/or id 


document.writeln(number);

var newtemp = 0;

var newtemp = tempera *9/5+32;

document.write(newtemp);
}

</script>

</head>

<body>
<input type="text" id="xyz" name="xyz">
<button title="calculate" onclick="calculateit()">calculate </button>


</body>
</html>
4

2 回答 2

2

你使用了错误的方法。两种广泛支持的 javascript 方法是“getElementsByTagName”和“getElementById”。请注意“getElementById”的拼写方式。它旨在获取一个具有您指定的确切 ID 的元素。“getElementsByTagName”获取某个标签的所有元素......例如“div”。当使用“getElementById”时,你不需要索引它或任何东西——它要么返回 null(找不到),要么返回确切的元素引用。从那里,因为它是一个文本区域,你可以使用“.value”来获取当前值,就像你已经是一样。

还:

在页面呈现之后,您可能不应该使用“document.write”或其任何相关的写入方法。在你的例子中,这正是你正在做的,所以一旦你让“.value”的东西工作,我会改变它。关键是“document.write”更适用于页面呈现期间......所以如果你有 javascript 与 HTML 正文或其他内容内联。就像是:

<html>
<head>

</head>
<body>
    <script type="text/javascript">
        document.write("testing");
    </script>
</body>
</html>

会很好,但仍然不是首选。事实上,您将它放在一个函数中,即在单击按钮时调用它,这意味着它不在页面呈现期间,不应该使用。一种更实用的方法是<div>在页面上添加一个并在必要时向其添加文本,使用类似“.innerHTML”的内容。这样,事情是动态的,不会在实际文档中被覆盖。

于 2012-09-06T01:49:46.810 回答
2

它是 getElementById,而不是 getElementsById。

于 2012-09-06T01:50:13.037 回答