Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法按id获取HTML元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript 无法按id获取HTML元素

Javascript 无法按id获取HTML元素,javascript,jquery,html,Javascript,Jquery,Html,我一直在尝试通过javascript从“select”元素检索所选值。我甚至无法使用jQuery或document.getElementById从DOM中获取元素。 这是我的密码: function getDropdown(headerText, options, id) { var container = document.createElement('div'); container.setAttribute('class', 'nfvo-drop-down-c

我一直在尝试通过javascript从“select”元素检索所选值。我甚至无法使用jQuery或document.getElementById从DOM中获取元素。 这是我的密码:

   function getDropdown(headerText, options, id) {
      var container = document.createElement('div');
      container.setAttribute('class', 'nfvo-drop-down-container');

      var dd = document.createElement('select');
      $(dd).attr('id', id);
      for(var val in options) {
          $('<option />', {value: val, text: options[val]}).appendTo(dd);
      }

      if(headerText) {
          var span = document.createElement('span');
          span.setAttribute('class', 'panel-header');
          span.appendChild(document.createTextNode(headerText));
          container.appendChild(span);
      }

      container.appendChild(dd);
      return container;
   }
   var dd = getDropDown('My dropdown', [1,2,3,4], 'ddID);
   var e = document.getElementById('ddID');
   var e2 = $('#ddID');
   var e3 = $('#ddID').val();
   var e4 = $('#ddID').text();
如果我将console.log记录这些值,我将得到以下结果:

console.log(e) -> 'null'
console.log(e2) -> <Got the element>
console.log(e3) -> 'undefined'
console.log(e4) -> <Nothing, just a blank>
有没有关于可能导致此问题的IDE? 此代码块位于“.then”函数调用中,例如:

$.when(...).then(function(...)
   <Here is the code>
);
编辑:这篇文章中有一个拼写错误,现在已经修复了。这不是我问题的根源

我还应该提到,我通过Dojo toolkit将这个div添加到ContentPane中,并且我可以通过chrome中的检查工具在DOM中看到下拉列表。

getDropDown使用该id创建一个元素,将其放入div中,然后返回该div

它从不将这些元素中的任何一个添加到文档中的任何元素中


因此,当您在文档中搜索具有匹配id的元素时,它不在那里。

使用document.getElementById'ddID'将无法获得select box对象 因为您尚未将对象添加到文档中的任何对象


您将使用dd.childNodes[1]从dd对象中获取select box对象。

在var e=document.getElemetnById'ddID'行的代码中有一个输入错误:它的'getElementById'请使用控制台进行调试。除此之外,您还有一个语法错误,正如getElementById中提到的一个打字错误:为什么您确定console.loge2显示您的元素?即使找不到元素,$'ddID'的结果也不会为null或未定义,因为$。。。返回包含零个或多个元素的结果集。If document.getElementById'ddID';如果为null,则$'ddID'。长度将为0。这是我从console.loge2->'n.fn.init{context:document,selector:ddID}返回的内容。我想这是jQuerys眼中的元素?显然我错了。我检查并控制台.log$'ddID'.length->0。HTML标记在哪里?这里可能也有输入错误。我正在使用Dojo进行此项目,并将div附加到ContentPane。这很重要吗?我认为dojo会将其添加到DOM中,因为我可以在chrome中通过inspect工具看到下拉元素。@Edvin-您提供的代码根本不会将其添加到文档中。也许你没有给我们看的代码添加得太晚了。