奇怪,第一行工作正常,但第三行给我 TypeError: dojo.byId(...).attr is not a function
.隐藏字段包含所有学生对,如 <input type="hidden" id="_hidden_studentname_{somestudentid}" value="aStudentName">
, 这里的 {somestudentid} 只表示它是学生 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()
?我很确定 <input type="hidden">
具有该 ID 的确实存在....
最佳答案
请注意您如何在第 1 行中使用 dijit.byId
,但在第 3 行中使用 dojo.byId
。前者返回一个小部件(它有一个 attr
函数),而 dojo.byId
返回一个没有 attr
方法的 DOM 元素。
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;
});
关于javascript - Dojo: TypeError: dojo.byId(...).attr 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065697/