javascript - 使用 JavaScript 更改页面上的文本和元素的正确方法

标签 javascript text coding-style

我已经使用 innerHTMLinnerText 来更改网页上的元素和文本一段时间了,但我刚刚发现它们不是 W3C 标准。

我现在发现 innerHTML 可以替换为 createElementsetAttribute 和其他一些,但是最好的更改方法是什么元素内的文本?

我也找到了一个textContent,但是是否有标准方法并且它是否在旧版浏览器中广泛实现?

最佳答案

textContent 未在 IE8 及更低版本中实现。您可以使用createTextNode()与使用 createElement() 的方式类似。但是,我经常使用发现技术来找出我需要使用哪个属性并保留对其的引用:

// You can use a shorter variable name if you want
var innerTextOrTextContent = "textContent" in document.body 
                               ? "textContent" : "innerText";

// Set an element's text:
myElement[innerTextOrTextContent] = "Added using: "+innerTextOrTextContent;

createTextNode() 示例:

var tNode = document.createTextNode("Added using createTextNode()");
myElement.appendChild(tNode);

我经常忘记的一点是,如果您可以获得对它的引用,您也可以直接设置文本节点的值:

// childNodes[0] is a text node:
myElement.childNodes[0].nodeValue = "Added using nodeValue";

示例 - http://jsfiddle.net/BxPaG/ .

关于javascript - 使用 JavaScript 更改页面上的文本和元素的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3640214/

相关文章:

javascript - 有没有办法让动画在中止时结束?

text - python IDLE可以用来创建Play商店应用程序吗

sql - 如何确保我的SQL代码不会造成困惑

javascript - 优化 Node.js 中的 API 请求

javascript - 为什么Object.keys()方法没有添加到Object.prototype中?

text - 如何强制 Sublime Text 2 在 PHP 文件中使用 3 个空格的制表符?

java - 如何不重复自己或如何更改方法中的简单条件?

python - 跟踪/记录您当前从事的编程项目的最佳方式是什么

javascript - Ext.Template 未定义

Oracle 文本在单个索引上调度同步