我在段落中有一个选择,想要知道所选的值是什么,但我得到null ...有什么帮助吗?这是代码:
divWithInfo = document.createElement('div');
divWithInfo.class = 'divWithInfoControls';
divWithInfo.style.position = 'absolute';
divWithInfo.style.top = '10px';
divWithInfo.style.width = '100%';
divWithInfo.style.textAlign = 'center';
var groupToDisplay = '<p id="pSelectGroup" style="display: block;">Select the user group: ';
groupToDisplay += '<select id="selectGroup" onchange="applyGroupSelection()">';
groupToDisplay += '<option selected>Nothing selected</option>';
for ( var g in userGroups )
groupToDisplay += '<option>' + g + '</option>';
groupToDisplay += '</select></p>';
divWithInfo.innerHTML += groupToDisplay;
console.log ( document.getElementById( "selectGroup" ) );
当我在onchange上应用函数时,&#34; document.getElementById&#34;工作得很好,只有在这种情况下,我得到了空白
答案 0 :(得分:2)
您似乎未将divWithInfo
添加到 #document ,因此getElementById
无法在 DOM树<<}中找到它/ em>的
在致电document.getElementById("selectGroup")
之前,请记住,例如document.body.appendChild(divWithInfo)
。
如果这不是一个选项,您可能需要考虑使用divWithInfo.querySelector
,即
var foo = divWithInfo.querySelector("#selectGroup");
但是,我尝试避免这种情况,相反,如果在追加之前需要引用,我会完全使用 DOM 方法创建,不使用.innerHTML
< /强>