js的基本问题
请问我的这段代码为什么用getelementbyid就能实现而用getelementbyname就不能实现呢<!DOCTYPEhtml><htmllang="en"><h...
请问我的这段代码为什么用getelementbyid就能实现而用getelementbyname就不能实现呢
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>2.html</title>
<script>
function cal(){
var a = document.getElementByName("num1").value;
var b = document.getElementByName("num2").value;
a = parseFloat(a);
b = parseFloat(b);
var c = a * b;
var c = new Number(c);
document.getElementByName("num3").value = c.toExponential();
}
</script>
</head>
<body>
<input type="text" name="num1">
<input type="text" name="num2">
<input type="text" name="num3">
<input type="button" value="运算" onclick="cal()">
</body>
</html> 展开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>2.html</title>
<script>
function cal(){
var a = document.getElementByName("num1").value;
var b = document.getElementByName("num2").value;
a = parseFloat(a);
b = parseFloat(b);
var c = a * b;
var c = new Number(c);
document.getElementByName("num3").value = c.toExponential();
}
</script>
</head>
<body>
<input type="text" name="num1">
<input type="text" name="num2">
<input type="text" name="num3">
<input type="button" value="运算" onclick="cal()">
</body>
</html> 展开
展开全部
1、首先,js中并不存在 getElementByName 方法, 而应该是 getElementsByName (By之前有个s);
2、其次,之所以有个s,是因为getElementsByName方法返回的是个对象集合,是个复数,所以有s(原因是因为name属性是允许同名的,也就是说可以有多个input的name相同,这样的话返回值就不止一个了),所以正确的用法是document.getElementsByName("num1")[0].value。注意,即使页面中只存在一个name属性为num1的Input,[0]也是不能省略的,因为这是一个对象集合,不是单个对象。
3、最后,其他类似语句(num2、num3等)也要做相应修改才行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询