【发布时间】:2013-10-12 18:51:20
【问题描述】:
我正在尝试为我的框架创建一个方法,该方法将对元素内的文本执行某些操作,但在 FF 和 IE 中存在问题。
<div id="myDiv" style="border: 1px solid red;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit lacus non hendrerit cursus.
</div>
<script>
console.log(document.getElementById('myDiv').hasOwnProperty("innerHTML"));
</script>
这在 FF 和 IE 中返回 false。虽然它在 Chrome 中返回 true。知道为什么会这样吗?
【问题讨论】:
-
你为什么要检查它是否有
innerHTML作为它自己的属性?只需使用if ('innerHTML' in myDiv) { ...就可以使用它,即使它不是 div 自己的属性。即使它被继承,它仍然可以工作,因为innerHTML是一个 getter/setter,而不是常规属性。 -
@JoeSimmons:当然有不同的方法,但我也很好奇为什么 hasOwnProperty 不起作用。
-
对于文本,您应该使用 el.textContent 而不是可能有害的 innerHTML (developer.mozilla.org/en-US/docs/Web/API/element.innerHTML)
-
它不能是它自己的财产。
hasOwnProperty可能工作正常。还有什么好说的?
标签: javascript internet-explorer firefox dom hasownproperty