我一直在嘗試通過javascript從「選擇」元素中檢索選定的值。我甚至無法使用jQuery或document.getElementById()從DOM獲取元素。 這裏是我的代碼:無法通過ID獲取HTML元素
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? 此的碼塊是「然後」函數調用e.g內:
$.when(...).then(function(...)
<Here is the code>
);
編輯:有其中現在已經固定後一個錯字。這不是我的問題的根源。
我還應該提到,我通過Dojo工具包將此div添加到ContentPane,並且我可以通過chrome中的檢查工具在DOM中看到下拉列表。
有一個代碼行上的錯誤var e = document.getElemetnById('ddID');: 其'getElementById' –
請使用控制檯進行調試。 –
除此之外,你有一個語法錯誤,並提到'getElemetnById'中的拼寫錯誤:爲什麼你確定'console.log(e2)'顯示你的元素?即使沒有找到元素,'$('#ddID')'的結果也不會是'null'或'undefined',因爲$(...)返回一個包含零個或多個元素的結果集。如果'document.getElementById('ddID');'爲'null',那麼'$('#ddID')。length'將爲'0'。 –