Dojo: TypeError: dojo.byId(...).attr is not a function
Posted
技术标签:
【中文标题】Dojo: TypeError: dojo.byId(...).attr is not a function【英文标题】: 【发布时间】:2013-04-17 16:47:12 【问题描述】:奇怪,第一行工作正常,但第三行给我TypeError: dojo.byId(...).attr is not a function
。有一个隐藏字段包含所有学生对,作为<input type="hidden" id="_hidden_studentname_somestudentid" value="aStudentName">
,这里 somestudentid 仅将其指示为学生 ID 变量。这样做的目的是尝试通过学生 ID 获取学生姓名。
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.byId()
?我很确定具有该 ID 的 <input type="hidden">
确实存在....
【问题讨论】:
【参考方案1】:注意你是如何在第 1 行使用 dijit.byId
,但在第 3 行使用 dojo.byId
。前者返回一个小部件(它有一个 attr
函数),而 dojo.byId
返回一个 DOM 元素,它确实没有attr
方法。
DOM 元素可以直接操作属性,因此您可以更新代码以使用something.value = 'some other value';
。
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;
);
【讨论】:
谢谢,太棒了!!我也使用dojo.html.set(dojo.byId("_student_text"), studentName);
将学生姓名放入 div 内容中。再次感谢和欢呼。以上是关于Dojo: TypeError: dojo.byId(...).attr is not a function的主要内容,如果未能解决你的问题,请参考以下文章
Dojo.js AMD 加载程序 - 类型错误:无法将未定义转换为对象