Следующий код может работать без проблем в Chrome, но выдает следующее сообщение об ошибке в Internet Explorer 11.код не работает в IE 11, отлично работает в Chrome
Объект не поддерживает свойство или метод 'startsWith'
Я сохраняю идентификатор элемента в переменной. В чем проблема?
function changeClass(elId) {
var array = document.getElementsByTagName('td');
for (var a = 0; a < array.length; a++) {
var str = array[a].id;
if (str.startsWith('REP')) {
if (str == elId) {
array[a].style.backgroundColor = "Blue";
array[a].style.color = "white";
} else {
array[a].style.backgroundColor = "";
array[a].style.color = "";
}
} else if (str.startsWith('D')) {
if (str == elId) {
array[a].style.backgroundColor = "Blue";
array[a].style.color = "white";
} else {
array[a].style.backgroundColor = "";
array[a].style.color = "";
}
}
}
}
<table>
<tr>
<td id="REP1" onclick="changeClass('REP1');">REPS</td>
<td id="td1"> </td>
</tr>
<tr>
<td id="td1"> </td>
<td id="D1" onclick="changeClass('D1');">Doors</td>
</tr>
<tr>
<td id="td1"> </td>
<td id="D12" onclick="changeClass('D12');">Doors</td>
</tr>
</table>
Вам скорее всего потребуется использовать 'str.indexOf (" REP ") == 0' для IE. –
ES6 еще не является стандартом https://kangax.github.io/compat-table/es6/. Существует библиотека ES6-прокладки, которая поможет переходу https://github.com/paulmillr/es6-shim/. Как и для ES5 (в том числе не все сжимаемо) – Xotic750