当前位置:首页 > innerText兼容处理 (nodeValue | textContent)

innerText兼容处理 (nodeValue | textContent)

发布于 2018-05-22 阅读 696 次 Javascript

据说firefox不支持innerText,但是firefox支持类似的属性textContent,所以兼容写法可以如下:

  1. var div = document.getElementById("content");
  2. function getTextContent( e ){
  3. if ( e.innerText ){
  4. return e.innerText;
  5. }else if ( e.nodeValue ){
  6. return e.nodeValue;
  7. }else if ( e.textContent ){
  8. return e.textContent;
  9. }else{
  10. return "";
  11. }
  12. }
  13. getTextContent(div);

当然使用jquery的text()方法是最简单的。

这两个属性都是可写属性所以给出set方法:

  1. function setTextContent( e, str ){
  2. if ( e.innerText ){
  3. e.innerText = str;
  4. }else if ( e.nodeValue ){
  5. e.nodeValue = str;
  6. }else if ( e.textContent ){
  7. e.textContent = str;
  8. }else{
  9. console.error('wrong');
  10. }
  11. }
  12. setTextContent(o, 'hello Xiaoyaoji');

当然有时候我们也可以使用innerHTML来代替innerText