我试图了解它们之间的区别 dijit.byId和dojo.byId
为此,我采取了一个按钮和一个div。(设置 单击按钮时div内的数据
给我看看!
<div id="findMe">
Hiya!
</div>
这是有效的(dojo.byId)
function callMe()
{
var node = dojo.byId('findMe');
node.innerHTML = "Hello World";
}
但这不起作用(dijit.byId)
function callMe()
{
var node = dijit.byId('findMe');
node.innerHTML = "Hello World";
}
我的理解是,在引用div时我们需要使用dojo.byId 当我们引用个人组件时,请使用dijit.byId
如果我错了,请纠正我。
答案 0 :(得分:5)
如前所述,dojo.byId检索具有该id的DOM节点(如果存在)。
dijit.byId检索dijit._Widget(及其子类)的实例,即dojo对UI对象的抽象,而不是widget的DOM节点。但重要的是要注意dijit.byId通过atrribute“widgetId”, not “id”搜索小部件。如果通过传递已经具有“id”的容器节点来声明小部件,则它们是相等的,但是如果未明确指定,dojo仍会为每个小部件创建属性“widgetId”。
这意味着widgetId和id通常是相同的,但它们可能是不同的。另外,即使在容器节点的id属性不存在的情况下,也始终为给定小部件设置widgetId。
这意味着只要您想要获取某个窗口小部件实例的实例,就应该在每次打算处理DOM树本身时使用dojo.byId和dijit.byId。如果没有小部件,则根本没有理由使用dijit.byId。
答案 1 :(得分:4)
你是对的: