javascript - Dojo: TypeError: dojo.byId(...).attr 不是函数

标签 javascript html dojo

奇怪,第一行工作正常,但第三行给我 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/

相关文章:

javascript - dojox.form.Rating 未出现在发布数据中

php - 如何正确捕获 Ajax 调用上的 PHP 错误

javascript - 更改表单序列化数据

javascript - SetInterval定时改变单元格颜色

javascript - Node.js socket.io 的 Dojox 套接字异常

css - 如何在富文本编辑器中编辑ol标签

html - 继承颜色但覆盖不透明度/透明度

javascript - Onclick 中的两个 Javascript 函数

javascript - Vue.js $children 按组件名称

html - 整页图像问题