我正在根据从其他地方提取的值动态创建一系列复选框,而我正在努力保持代码的通用性。复选框位于javascript中的大型UI部分,一次性添加到DOM中,以避免尽可能地锁定UI。
首先需要检查某些复选框,但是将HTMLElement的值设置为true不起作用。添加整个HTML部分后,不再选中复选框。
有谁知道为什么或有一个体面的工作?
这是一个很好的例子
"KeyboardAllowPaddle": false,
"KeyboardAssistant": false,
"KeyboardAutocapitalization": false,
"KeyboardAutocorrection": false,
"KeyboardCapsLock": false,
"KeyboardCheckSpelling": false,
"KeyboardPeriodShortcut": false,
"KeyboardPrediction": false,
"KeyboardShowPredictionBar": false
请不要JQuery!
答案 0 :(得分:1)
您可以尝试使用setAttribute('checked', true)
- 因为您使用.checked
它实际上没有放置属性,然后因为您将其混合并附加到innerHTML
,可能是你失去被检查状态的原因
.checked
无法使用innerHTML
var check = document.createElement('input');
check.type = 'checkbox';
check.value = 'test';
check.checked = true
document.body.append(check);

使用innerHTML
,已检查无效,因为实际上未设置任何属性,并且可能正在将现有内容更改为字符串以将新内容附加到:
var check = document.createElement('input');
check.type = 'checkbox';
check.value = 'test';
check.checked = true
document.body.append(check);
document.body.innerHTML += 'test'

手动设置属性应该有效
var check = document.createElement('input');
check.type = 'checkbox';
check.value = 'test';
check.setAttribute('checked', true);
document.body.append(check);
document.body.innerHTML += 'test'