首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dojo: TypeError: dojo.byId(...)Dojo不是一个函数

Dojo: TypeError: dojo.byId(...)Dojo不是一个函数
EN

Stack Overflow用户
提问于 2013-04-18 00:47:13
回答 1查看 3.7K关注 0票数 2

奇怪的是,第一行运行得很好,但是第三行给了我TypeError: dojo.byId(...).attr is not a function。有一些隐藏的字段保存了所有作为<input type="hidden" id="_hidden_studentname_{somestudentid}" value="aStudentName">的学生对,这里{somestudentid}仅将其表示为学生id变量。这样做的目的是尝试通过学生id获取学生姓名。

代码语言:javascript
复制
dojo.connect(dijit.byId('_studentId_id'), 'onChange', function (val) {
    var studentId=dijit.byId("_studentId_id").attr("value"); // line 1
    var id="_hidden_studentname_"+studentId;
    var studentName=dojo.byId(id).attr("value");             // line 3
    dojo.byId("_student_text").attr("value", studentName);
});

所以dojo不允许在dojo.byId()中放入变量?我非常确定具有该id的<input type="hidden">确实存在……

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 01:21:29

注意您是如何在第1行使用dijit.byId的,但是在第3行使用了dojo.byId。前者返回一个小部件(它有一个attr函数),而dojo.byId返回一个没有attr方法的DOM元素。

DOM元素可以直接操作属性,因此可以更新代码以使用something.value = 'some other value';

代码语言:javascript
复制
dojo.connect(dijit.byId('_studentId_id'), 'onChange', function (val) {
    var studentId=dijit.byId("_studentId_id").attr("value"); // line 1
    var id="_hidden_studentname_"+studentId;
    var studentName=dojo.byId(id).value;             // line 3
    dojo.byId("_student_text").value =studentName;
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16065697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档