所以我试图获取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>
答案 0 :(得分:2)
您使用的是错误的方法。 javascript的两种广泛支持的方法是“getElementsByTagName”和“getElementById”。请注意拼写“getElementById”的拼写方式。它旨在获得一个具有您指定的确切ID的元素。 “getElementsByTagName”获取某个标记的所有元素......例如“div”。使用“getElementById”时,不要将其索引或任何内容 - 它返回null(无法找到)或确切的元素引用。从那里开始,因为它是一个textarea,你可以使用“.value”来获取当前值,就像你现在一样。
ALSO:
您可能不应该在呈现页面后使用“document.write”或其任何相关的写入方法。在你的例子中,这正是你正在做的事情,所以一旦你得到“.value”的东西,我就会改变它。关键是“document.write”更适合在页面渲染过程中...所以如果你有与HTML正文内联的javascript。类似的东西:
<html>
<head>
</head>
<body>
<script type="text/javascript">
document.write("testing");
</script>
</body>
</html>
会好的,但仍然不是首选。你在一个函数中使用它的事实,即在按钮单击时调用,意味着它不是在页面渲染期间,不应该使用。更实用的方法是在页面上放置<div>
,并在必要时使用“.innerHTML”之类的内容添加文本。这样,事物就是动态的,而不会在实际文档中被覆盖。
答案 1 :(得分:2)
它是getElementById,而不是getElementsById。