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>
展开
 我来答
网海1书生
科技发烧友

2018-07-21 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部

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等)也要做相应修改才行。

学不安道
2018-07-21 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:209
采纳率:75%
帮助的人:39万
展开全部
该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。
另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。
下次遇到这个可以先去w3c查询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式