我试图从'选择'中检索所选值。元素通过JavaScript。我甚至无法使用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>
关于可能导致此问题的任何想法? 这段代码位于&#39;然后&#39;功能调用例如:
$.when(...).then(function(...)
<Here is the code>
);
编辑:帖子中有一个拼写错误,现已修复。这不是我问题的根源。
我还应该提一下,我通过Dojo工具包将此div添加到ContentPane中,我可以通过chrome中的检查工具看到DOM中的下拉列表。
答案 0 :(得分:3)
使用document.getElementById('ddID')不会获得选择框对象 因为您没有将对象添加到文档中的任何对象 您将通过使用dd.childNodes [1]
从dd对象中获取选择框对象答案 1 :(得分:0)
document
创建一个带有该id的元素,将其放入div中,然后返回div。
它永远不会将任何元素添加到{{1}}中的任何元素。
因此,当您在文档中搜索具有匹配ID的元素时,它就不存在。