假设我有以下代码:

<html>
  <head></head>
  <body>
   <div id="d">some text</div>

  <script type="text/javascript">
    var d = document.getElementByid('d');
    var innerText = d.innerText || d.textContent;

    innerText = 'new text';
  </script>
  </body>
</html>

我想更改id ='d'的div标签的文本值。不幸的是,上面的块代码不起作用,文本内容也没有变化。

如果执行以下配方,它将起作用:
if (d.innerText) d.innerText = 'new text';
else d.textContent = 'new text';

但是我不喜欢上面的食谱,因为它不紧凑。

您有什么建议为什么第一种方法行不通?

最佳答案

您可以获取属性并使用该属性,而不用进行多次分配

var text = ('innerText' in d)? 'innerText' : 'textContent';
d[text] = 'New text';

关于javascript - 跨浏览器innerText用于设置值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11646398/

10-10 01:59