我正在克隆一行,更改元素中的一些内容,然后将元素输出到页面。问题是,当我删除已检查的属性时,它在IE中工作正常,但FF保留已克隆的原始元素的已检查状态。
例如:
var newHTML = $$('.importRow')[0].clone(true);
$(newHTML).select('input').each(function(s, index) {
$(s).removeAttribute('checked'); //This is to remove any checked value
if ($(s).hasClassName('someClass') && $(s).getValue() == 'someValue'){ //This is to assign a new default checked value
$(s).setAttribute('checked','checked');
}
}
$(this).up().insert({
before: newHTML
});
我如何解决此问题并使FF不保留以前选择的值?
编辑:
返回它正确显示的元素,但Firefox由于某种原因记得该值,我不知道如何覆盖此行为。
答案 0 :(得分:0)
尝试使用复选框DOM属性:s.checked = false; s.defaultChecked = false;
,或者,不是删除checked
属性,而是将其值设置为false:s.writeAttribute('checked', 'false');
顺便提一下,一旦使用原型函数扩展了一个元素,就不需要在其上重复调用$()
;这只会浪费CPU时间。