我使用嵌入式js脚本制作一个select元素,如下所示。我确实看到页面上有一个select元素,但下拉列表是空白的。也不显示默认选择。我认为CSS不起作用的原因是尺寸偏离了。我做了一个不是来自js的静态选择而且它要大得多。有什么建议吗?
* UDPATE *
我添加了select元素,但现在我有两个。一个有选择但不受CSS影响的,一个是空白的,由CSS表格正确格式化。是什么给了什么?
<script>
function processCSV(file,parentNode)
{
var frag = document.createDocumentFragment()
, lines = file.split('\n'), option;
var intial_option = document.createElement("option");
intial_option.setAttribute("value","");
intial_option.setAttribute("disabled","disabled");
intial_option.setAttribute("selected","selected");
intial_option.innerHTML = "Please select a Plant";
frag.appendChild(intial_option)
for (var i = 0, len = lines.length; i < len; i++){
option = document.createElement("option");
option.setAttribute("value", lines[i]);
option.innerHTML = lines[i];
frag.appendChild(option);
}
parentNode.appendChild(frag);
menuholder.appendChild(parentNode);
}
var plant_select = document.createElement("select");
var datafile = '';
var xmlhttp = new XMLHttpRequest();
plant_select.setAttribute("class", "selectbox");
plant_select.setAttribute("id", "plant_select");
xmlhttp.open("GET","http://localhost:8080/res/plants.csv",true);
xmlhttp.send();
xmlhttp.onreadystatechange = function()
{
if(xmlhttp.status==200 && xmlhttp.readyState==4)
{
processCSV(xmlhttp.responseText, plant_select);
}
}
</script>
相应的CSS文件部分如下所示
body
{
padding: 0;
margin: 0;
background-color:#d0e4fe;
font-size: 2em;
font-family: monospace;
font-weight: bold;
}
和
.menu_container
{
position: relative;
margin: 0 auto;
}
.menu_element
{
float: right;
width: 33%;
}
答案 0 :(得分:2)
我相信你需要将植物选择插入到dom中。
因此,在执行processCSV之前,请执行类似
的操作var body_elem=document.getElementsByTagName('body')[0];
body_elem.appendChild(plant_select);
根据您想要菜单的确切位置改变第一行(要追加的元素)。 有关创建和插入文档元素的信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Node.appendChild,另请参阅insertBefore。
实际上,我没有看到你将选项放在文档中的哪个位置。
这也许会有所帮助,因为你特别是在IE中 - 而不是 plant_select.setAttribute(“class”,“selectbox”); plant_select.setAttribute(“id”,“plant_select”);
尝试
plant_select.className="selectbox";
plant_select.id="plant_select";
IE特别是在选择将属性映射到属性方面遇到了问题。以这种方式设置id和class比setAttribute更可靠。