我正在使用javascript和IE11来实现下面的代码,使用javascript在组合框中添加选项
var bSelected = false;
for (count of elements to be created)
{
**// set value and text and whether to selected the element or not**
// Create an option and add it to the combo
opt = document.createElement ("option");
opt_txt = document.createTextNode (textPart);
opt.appendChild (opt_txt);
opt.setAttribute ("value", valuePart);
opt.setAttribute ("text", textPart);
opt.setAttribute ("selected", bSelected);
}
现在,即使将selected设置为false,opt.selected属性也始终为true。元素由createElement函数创建后,默认值为true。请帮忙,为什么它不变为假?
在IE9中,它工作正常(不同的HTML版本?)
答案 0 :(得分:1)
selected
属性唯一允许的值为"selected"
(或""
,这意味着相同的事情),但浏览器中的错误恢复意味着任何价值将被视为"selected"
。
当您致电opt.setAttribute ("selected", bSelected);
时,bSelected
的值会转换为字符串并设置为该值。
在这种情况下,false
会转换为"false"
并视为"selected"
。
在处理布尔属性时,如果您不想设置它们,那么根本不设置它们。
或者,您可以设置选定的DOM属性而不是属性。该属性确实采用true
和false
而不是"selected"
。
opt.selected = bSelected;