使用dijit.byId和dojo.byId的混淆

使用dijit.byId和dojo.byId的混淆,dojo,Dojo,我试图理解两者之间的区别 dijit.byId和dojo.byId 为此,我使用了一个按钮和一个div(设置 单击按钮时div内的数据) 向我展示! 但这不起作用(dijit.byId) function callMe() { var node = dojo.byId('findMe'); node.innerHTML = "Hello World"; } function callMe() { var node = dijit.byId('findMe');

我试图理解两者之间的区别 dijit.byId和dojo.byId

为此,我使用了一个按钮和一个div(设置 单击按钮时div内的数据)

向我展示!

但这不起作用(dijit.byId)

function callMe()
{
  var node = dojo.byId('findMe');
 node.innerHTML = "Hello World";
 }
 function callMe()
    {
      var node = dijit.byId('findMe');
     node.innerHTML = "Hello World";
     }
我的理解是,当提到div时,我们需要使用dojo.byId 当我们引用单个组件时,请使用dijit.byId

如果我错了,请纠正我。

你是对的:

  • dojo.byId在网站的DOM树中查找具有特定ID的元素-它搜索并返回HTML元素
  • byId查找您使用特定id创建的dijit-它搜索并返回dijit(javascript对象),尽管这些对象通常引用特定的DOM节点
    • 你说得对:

      • dojo.byId在网站的DOM树中查找具有特定ID的元素-它搜索并返回HTML元素
      • byId查找您使用特定id创建的dijit-它搜索并返回dijit(javascript对象),尽管这些对象通常引用特定的DOM节点

      如前所述,dojo.byId检索具有该id的DOM节点(如果存在)

      byId检索dijit.\u小部件(及其子类)的实例,这是dojo对UI对象的抽象,而不是小部件的DOM节点。但需要注意的是,dijit.byId通过属性“widgetId”而不是“id”搜索小部件。如果您通过传递一个已经有“id”的容器节点来声明您的小部件,但是如果没有明确指定,dojo仍然为每个小部件创建一个属性“widgetId”,那么这些属性是相等的

      这意味着widgetId和id通常是相同的,但也可能是不同的。另外,即使在容器节点的id属性不存在的情况下,也总是为给定的小部件设置widgetId


      这意味着您应该在任何时候使用dojo.byId来处理DOM树本身,而dijit.byId仅在您希望获得某个小部件实例的实例时使用。如果不存在小部件,则根本没有理由使用dijit.byId。

      如前所述,dojo.byId检索具有该id的DOM节点(如果存在)

      byId检索dijit.\u小部件(及其子类)的实例,这是dojo对UI对象的抽象,而不是小部件的DOM节点。但需要注意的是,dijit.byId通过属性“widgetId”而不是“id”搜索小部件。如果您通过传递一个已经有“id”的容器节点来声明您的小部件,但是如果没有明确指定,dojo仍然为每个小部件创建一个属性“widgetId”,那么这些属性是相等的

      这意味着widgetId和id通常是相同的,但也可能是不同的。另外,即使在容器节点的id属性不存在的情况下,也总是为给定的小部件设置widgetId

      这意味着您应该在任何时候使用dojo.byId来处理DOM树本身,而dijit.byId仅在您希望获得某个小部件实例的实例时使用。如果没有小部件,则根本没有理由使用dijit.byId。

      您还没有创建任何“dijit”。您需要在上使用“dojoType”属性来自动创建dijit。或者您可以通过编程方式创建一个,将DOM节点(即您的div)作为创建参数传递。您必须执行以下操作:
      dijit.byId('findMe').domNode.innerhTML=…
      您尚未创建任何“dijit”。您需要在上使用“dojoType”属性来自动创建dijit。或者您可以通过编程方式创建一个,将DOM节点(即您的div)作为创建参数传递。您必须执行以下操作:
      dijit.byId('findMe').domNode.innerhTML=…
       function callMe()
          {
            var node = dijit.byId('findMe');
           node.innerHTML = "Hello World";
           }