javascript - js无法获得相应元素的值
ringa_lee
ringa_lee 2017-04-11 10:35:48
[JavaScript讨论组]

我通过js代码对input标签的内容进行取值,可是js就是报错说变量未定义,我检查了好几遍都没检查出到底哪里错了,求指导。

代码如下

      
        确认密码
        
        
       

js中:


function validate() {


    var pwd=document.getElementsByName("new_pwd_again").value;
ringa_lee
ringa_lee

ringa_lee

全部回复(3)
迷茫

你需要多多学习一下document.getElementsByName("new_pwd_again")获得的是多个哦 应该是
var pwd=document.getElementsByName("new_pwd_again")[0].value;

迷茫

目的:getElementsByName()、getElementsById()、getElementsByTagsName()返回值的类型测验
使用测试函数: Object.prototype.toString.call(obj)

<input name="new_pwd_again" 
       id="new_pwd_again"
       type="password"
       onkeyup="validate()"
       placeholder=" * 为必填项"
       required
       value="dsf"
/>
var name=document.getElementsByName("new_pwd_again");
var id=document.getElementById('new_pwd_again');
var tagName=document.getElementsByTagName('input');
console.log(Object.prototype.toString.call(name));     //[object NodeList]
console.log(Object.prototype.toString.call(id));       //[object HTMLInputElement]
console.log(Object.prototype.toString.call(tagName));  //[object HTMLCollection]

结果分析:
NodeList: http://www.w3school.com.cn/xm...
HTMLElement: http://www.w3school.com.cn/xm...
HTMLCollection: http://www.w3school.com.cn/xm...

结论:

document.getElementsByName("new_pwd_again")[0].value;   //dsf
document.getElementById('new_pwd_again').value;         //dsf
document.getElementsByTagName('input')[0].value         //dsf
高洛峰

document.getElementsByName("new_pwd_again")获取到的是数组类型,需要arr[key]形式读取,
而id是唯一的,所有document.getElementById('new_pwd_again')肯定只有一个,但前者不是,有时候会有多个。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号