Javascript 无法按id获取HTML元素
我一直在尝试通过javascript从“select”元素检索所选值。我甚至无法使用jQuery或document.getElementById从DOM中获取元素。 这是我的密码: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
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-您提供的代码根本不会将其添加到文档中。也许你没有给我们看的代码添加得太晚了。