IE Vs FireFox中的Java脚本错误?

Use*_*ser 2 javascript firefox internet-explorer google-chrome

我使用以下脚本从HTML表中获取值.如果我使用 innerText,它将适用于IE和Chrome Fine.But FireFox显示错误:row.cells [0] .innerText是未定义的源.如果我使用textContent它将在Chrome和FireFox中运行良好.但IE显示以下错误cells.0.textContent'为null或不是对象.如何更改此脚本在IE,Chrome,FireFox上工作没有错误?我使用c = row.cells [0] .innerText.strip(); 或者 c = row.cells [0] .textContent.strip();

        function a()
        {

            var table = getServerObject("b");
            var row,c;
            for (var i = 2; i < table.rows.length - 1; i++)
            {
                row = table.rows[i]; 
                if(row.cells.length==1)continue;
                c= row.cells[0].innerText.strip(); //It was work in chrome and IE (or)
                c=row.cells[0].textContent.strip();//It was work in chrome and FF
                if(c==0)
               {
                //Something
               }

            }
        }
Run Code Online (Sandbox Code Playgroud)

Sir*_*rko 5

在使用该属性之前进行测试,该属性可用:

var contentEnabled = document.textContent === null;
Run Code Online (Sandbox Code Playgroud)

稍后你有一个if决定使用哪个属性

if ( contentEnabled ) {
  c= row.cells[0].textContent.strip(); // It was work in chrome and FF
} else {
  c= row.cells[0].innerText.strip(); // It was work in chrome and IE
}
Run Code Online (Sandbox Code Playgroud)

或@RobW建议的更短

c = row.cells[0][contentEnabled ? 'textContent' : 'innerText'].strip();
Run Code Online (Sandbox Code Playgroud)

对于两个属性之间的细微差别,请注意MDN文档中textContent的以下内容:

与innerText的不同之处

Internet Explorer介绍element.innerText.意图几乎相同,有几点不同:

需要注意的是,虽然textContent得到的所有元素,包括内容<script><style>元素,大多是等效比IE属性,innerText,其实不然. innerText也知道风格,不会返回隐藏元素的文本,而textContent将会.如innerText知道CSS样式,它将触发回流,而textContent不会.