Javascript Dojo:TypeError:Dojo.byId(…).attr不是函数

Javascript Dojo:TypeError:Dojo.byId(…).attr不是函数,javascript,html,dojo,Javascript,Html,Dojo,奇怪的是,第一行可以正常工作,但是第三行给了我类型错误:dojo.byId(…).attr不是一个函数。有一些隐藏字段保存所有学生对,这些学生对作为,这里{somestudentid}仅将其指示为学生id变量。这样做的目的是通过学生id获取学生姓名 dojo.connect(dijit.byId('_studentId_id'), 'onChange', function (val) { var studentId=dijit.byId("_studentId_id").attr("va

奇怪的是,第一行可以正常工作,但是第三行给了我
类型错误:dojo.byId(…).attr不是一个函数。有一些隐藏字段保存所有学生对,这些学生对作为
,这里{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不允许将变量放入
dojo.byId()
?我很确定带有该id的
确实存在….

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

DOM元素可以直接操作属性,因此您可以更新代码以使用
something.value='somether-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(“\u student\u text”),studentName)
将学生姓名放入div内容。再次感谢,干杯。