2015-10-05 122 views
0

下面的代碼工作與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

回答

0

可以更換爲後續線路的線路

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

,使用替代的startsWith

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

我說從這個developer.mozzilla.org代碼:

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

現在我的代碼正在工作。 感謝所有

相關問題