这实际上是我在Stack中的第一个问题(长时间倾听者和所有这些)。
我对Javascript很新,对Dojo来说肯定是新手。多年来我绞尽脑汁,但看不出我做错了什么。
我正在尝试通过此代码获取查询以返回DOM中的所有<p>
标记。一切都很好。
define ([
"dojo/dom",
"dojo/query"
], function (dom) {
return {
changeParagraphs: function() {
var nodeList = dom.query('p');
console.log(nodeList);
}
}
});
请原谅布局,仍然习惯这个。 如果我在这里打电话询问......
require(["custom/q3",
"dojo/domReady!",
"dojo/query"], function(myObject){
myObject.changeParagraphs();
})
我得到一个对象没有方法查询错误。
如果不是
var nodeList = dom.query('p')
我打电话......
var nodeList = dojo.query('p')
一切都很好。为什么?我知道使用全局(实际上是任何语言)的不良做法,但是我做错了什么?我无意使用全球!
我想我最有可能在这里浪费人们的时间,但我现在一直在敲打键盘几个小时。这很可能是非常明显的事情!
提前致谢!
答案 0 :(得分:2)
错误object has no method query
是一个关于问题的提示。 dojo/dom
模块没有查询方法。相反,您需要在define函数回调中公开dojo/query
方法:
define(["dojo/dom", "dojo/query"], function (dom, query) {
return {
changeParagraphs: function () {
var nodeList = query('p');
console.log(nodeList);
}
}
});
然后在你的要求中:
require(["custom/q3", "dojo/domReady!"], function (myObject) {
myObject.changeParagraphs();
})