Der folgende Code kann ohne Probleme in Chrome ausgeführt werden, sondern führt den folgenden Fehler in Internet Explorer 11.-Code nicht in IE läuft 11 funktioniert in Chrome
Objekt nicht Eigenschaft oder diese Methode nicht unterstützt 'startsWith'
Ich speichere die ID des Elements in einer Variablen. Was ist das Problem?
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>
Sie müssen wahrscheinlich stattdessen 'str.indexOf (" REP ") == 0' für IE verwenden. –
ES6 ist noch kein Standard https://kangax.github.io/compat-table/es6/ Es gibt eine ES6-Shim-Bibliothek, die den Übergang unterstützt https://github.com/paulmillr/es6-shim/ Genau wie für ES5 (einschließlich nicht alles ist shimmable) – Xotic750