Javascript代码是工作在Firefox,但不是在IE或Safari

问题描述:

下面的代码工作与Firefox,但也与IE 10也不能与Safari浏览器:Javascript代码是工作在Firefox,但不是在IE或Safari

function showids(id) { //new 
    divs = document.getElementsByTagName('div'); 
    for (var i = 0; i < divs.length; i++) { 
    if(divs[i].id.startsWith('id1')) { 
     alert(divs[i].id); 
     if(divs[i].id.startsWith('id1'+id)) 
      divs[i].className='one'; 
     else { 
      divs[i].className='two'; 
      alert('-'+divs[i].id); 
     } 
     } 
    } 
} 

有谁知道原因吗?

+0

或许'startsWith'不受支持,请检查控制台是否有错误 – Tushar

+0

'String.prototype.startsWith()'是一个来自ECMAScript 6的新函数。您需要对大多数浏览器进行填充。 – Phylogenesis

+0

或者使用不同的方法 - 像正则表达式 – user2182349

+1

谢谢。该网站提供了解决方案。 –

可以更换为后续线路的线路

if(divs[i].id.startsWith('id1')) { 

,使用替代的startsWith

if(divs[i].id.indexOf('id1')==0) { 

我说从这个developer.mozzilla.org代码:

if (!String.prototype.startsWith) { 
    String.prototype.startsWith = function(searchString, position) { 
    position = position || 0; 
    return this.indexOf(searchString, position) === position; 
    }; 
} 

现在我的代码正在工作。 感谢所有