getElementByClass节点innerHTML已更新,但未在DOM中更新
getElementByClass node innerHTML is updated, but not in DOM
我的文档正文中有以下DOM结构:
<body>
<div id="spin"></div>
<div class="Main"></div>
<script src="//localhost:35729/livereload.js"></script>
</body>
我很难更新class='Main'的HTML。我使用的代码是
var selector = document.getElementsByClassName('Main');
selector.innerHTML = '<h1>This</h1>'
奇怪的是,如果我检查
selector.innerHTML
在chrome控制台内部,它被更新为html,但DOM和我的视图都没有更新。
var selector = document.getElementsByClassName('Main');
返回一组节点。所以做
selector.innerHTML = '<h1>This</h1>'
对dom没有影响。它只会更改包含节点的JavaScript对象。
你可以这样做:
selector[0].innerHTML = '<h1>This</h1>'
https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName
是的,永远不要使用innerHTML
。
这是一个专有的Microsoft JScript方法,是的,它在某个地方的规范中被继承了,但这并不意味着你应该使用它。问题是innerHTML
将代码视为文本,而不是代码。因此,它不将代码序列化到DOM中,只转储一堆文本,每个渲染引擎都必须弄清楚该如何处理它
alert(new XMLSerializer().serializeToString(document.getElementsByClassName('Main')));
也不要将元素、属性和值大写,因为这是一种松懈的做法。严格的代码是好的代码,你总是知道该期待什么,是你现在完成事情的方式,而不是三天后。
相关文章:
- 如何确定Vue何时完成DOM更新
- DOM 更新问题
- ReactJS:如何从 DOM 更新 React
- 同一函数中的多个 DOM 更新
- Meteor JS渲染和DOM更新
- 简单的 AngularJS DOM 更新
- Safari:绝对定位的DIV在通过DOM更新时不会移动
- 任何视图模型dom更新的Knockout JS事件
- 使用DOM更新时不会触发输入文本事件
- 在Webkit中同步重绘/等待DOM更新
- 在不触发DOM更新的情况下更改URL
- Rails 3和Ajax/JSON/JQuery/直接DOM更新-与Scaffold程序一起使用
- 什么时候DOM更新完成,在javascript中添加子元素
- 羊驼javascript dom更新
- jQuery/Javascript -如何在继续执行函数之前等待被操纵的DOM更新
- 如何使用javascript和HTML DOM更新HTML元素的颜色?
- dojotoolkit中DOM更新有轻微延迟
- 暂停jQuery就绪事件,直到多个HTML DOM更新完成
- 严重的问题与后退按钮,Chrome和DOM更新
- 有没有一种编程方法来知道jQuery的DOM更新何时完成