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);
}
}
}
}
有谁知道原因吗?
答
startsWith
在IE或Safari中不受支持。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith
+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;
};
}
现在我的代码正在工作。 感谢所有
或许'startsWith'不受支持,请检查控制台是否有错误 – Tushar
'String.prototype.startsWith()'是一个来自ECMAScript 6的新函数。您需要对大多数浏览器进行填充。 – Phylogenesis
或者使用不同的方法 - 像正则表达式 – user2182349