gra*_*olf 5 jquery internet-explorer internet-explorer-11
在构造函数中,我创建一个元素
var this.legendElement = this.compileLegend();
Run Code Online (Sandbox Code Playgroud)
而且我以后想在事件监听器中使用它:
var takeControl = function() {
this.element.empty();
this.legendElement.appendTo(this.element);
}
Run Code Online (Sandbox Code Playgroud)
legendElement已附加,但为空!我不明白为什么。在其他浏览器(经过测试的Firefox,Chrome)中,它可以正常工作。
另外,当我打印this.legendElement的内容时,我看到的是预期的html代码。换一种说法
console.log(this.legendElement);
Run Code Online (Sandbox Code Playgroud)
产生具有正确内容的预期html代码(我在takeControl函数中称呼它)。
我尝试了几种方法来解决它
this.element.append(this.legendElement)
Run Code Online (Sandbox Code Playgroud)
也不起作用。
这个:
this.element.append(this.legendElement.html())
Run Code Online (Sandbox Code Playgroud)
附加html代码,但周围没有this.legendElement(这是预期的)。
所以以下
this.element.append($('<div />').append(this.legendElement).html())
Run Code Online (Sandbox Code Playgroud)
做了我想要的事情,但是看起来就像一个丑陋的hack。
所以,我的问题是:发生了什么事,我能得到什么
this.element.append(this.legendElement)
Run Code Online (Sandbox Code Playgroud)
去工作?
提前致谢!^ _ ^
IE11(至少是我的版本或设置)不支持element.append。但是,它确实与element.appendChild一起按预期工作。
MDN的浏览器兼容性部分确认IE(与其他所有浏览器相比)从未获得过ParentNode.append支持,但一直都具有Node.appendChild支持,这似乎是通用的。
| 归档时间: |
|
| 查看次数: |
8168 次 |
| 最近记录: |