我正在各种智能电视平台上开发应用程序,其中一个较旧的平台使用旧版本的 Maple 浏览器。
此浏览器的独特之处似乎是设置 element.className 似乎不会自动更新 DOM,例如,如果我从元素中删除一个类然后立即调用 document.getElementsByClassName(class),则该原始元素仍然出现在元素列表中那堂课。
例子:
// when entering here, "menu0" has className "focusedmenu" so clear it
var el = document.getElementById("menu0");
el.className = "";
// as a sanity check, get all elements with class "focusedmenu"
var focused = document.getElementsByClassName("focusedmenu");
for (var i = 0; i < focused.length; i++) {
// 'menu0' will still show as having 'focusedmenu' class
alert ( "focusedmenu id " + focused[i].getAttribute('id') );
}
这段代码似乎在其他平台上运行良好,所以我猜我要么需要采取不同的方法,要么在我修改 className 后以某种方式强制 DOM 刷新。
谁能推荐一个好的解决方案?