Javascript 使用Dojo的内置版本(但不是未压缩的源代码)时出错

Javascript 使用Dojo的内置版本(但不是未压缩的源代码)时出错,javascript,dojo,Javascript,Dojo,我注意到在使用未压缩的Dojo源代码时有些奇怪,我们的代码正常运行,没有错误。到目前为止,我从档案中找到了这两个 dojo-release-1.10.6-src和dojo-release-1.10.8-src 但是,当我切换到内置版本时 dojo-release-1.10.6或dojo-release-1.10.8 使用dojo.query时发生错误 TypeError:root.getElementsByTagName不是函数 我的函数调用如下所示 var dom_frag = domCons

我注意到在使用未压缩的Dojo源代码时有些奇怪,我们的代码正常运行,没有错误。到目前为止,我从档案中找到了这两个

dojo-release-1.10.6-src和dojo-release-1.10.8-src

但是,当我切换到内置版本时

dojo-release-1.10.6或dojo-release-1.10.8

使用dojo.query时发生错误

TypeError:root.getElementsByTagName不是函数

我的函数调用如下所示

var dom_frag = domConstruct.toDom(response);
var title = dojo.query(".accordion_title", dom_frag)[0];
其中响应包含HTML字符串。(太长,无法在此发布)

编辑:显示“dom\u frag”内容的调试器图像


确保您的
根目录实际上是一个DOM元素,如下所示:

getElementsByTagName()方法返回一个活动的 HTMLCollection具有给定标记名的元素。子树 在指定的元素下搜索,不包括该元素 本身


好的,您是否检查过dom_frag变量是否是单个dom节点?如果dom片段是多个节点,那么dojo.query将无法工作,因为它需要搜索单个dom节点的子节点。 要解决此问题,请尝试使用单个节点包装toDom内容。。。像这样:

var dom_frag = domConstruct.toDom("<div>"+response+"</div>");
var title = dojo.query(".accordion_title", dom_frag)[0];
var dom\u frag=domConstruct.toDom(“+response+”);
var title=dojo.query(“.accordion_title”,dom_frag)[0];

当然,这有点像黑客。。。但是,如果您不能保证响应将以单个节点结束,那么您需要这样做。

实际上不是这样,它可以在任何HTML元素上调用。查看位于您是否检查了使用内置dojo版本是否已正确地将
响应
转换为DOM?(如<代码>控制台.log(DOMWRAG))还考虑替换弃用的<代码> dojo。查询< /代码>要求<代码> dojo/Quebug <代码> @ BalbsAn添加图像以显示它已成功转换为文档片段,将尝试Dojo /查询,thanks@barbsan使用dojo/query没有效果-相同的错误,尽管您如何知道dojo.query已折旧?请参阅中的第一个提示。(当然,改变这一点也无济于事——它的行为方式与向后兼容性相同)