68

ここに私のコードのブロックがあります。fireFox と Chrome で完璧に動作します。しかしIEではありません。エラー " Object doesn't support property or method 'includes'"が表示されます

function rightTreeSwapfunc2() {
    if ($(".right-tree").css("background-image").includes("stage1") == true) {
        $(".right-tree").css({
            backgroundImage: "url(/plant-breeding/img/scenes/plant-breeding/stage5.jpg)"
        })
    } else {
        $(".right-tree").css({
            backgroundImage: "url(/plant-breeding/img/scenes/plant-breeding/stage3.jpg)"
        })
    }
}

少し変更してバニラJSを使用して、次のことを行うことができます。

document.getElementById("right-tree").classList.contains

しかし、JS を変更して HTML と CSS を編集する前に、IE で動作させる方法があるかどうかを確認したいと思います。

4

5 に答える 5

127

のドキュメントを見るとincludes()、ほとんどのブラウザはこのプロパティをサポートしていません。

indexOf()次を使用してプロパティを文字列に変換した後、広くサポートされているものを使用できtoString()ます。

if ($(".right-tree").css("background-image").indexOf("stage1") > -1) {
//                                           ^^^^^^^^^^^^^^^^^^^^^^

MDNのポリフィルを使用することもできます。

if (!String.prototype.includes) {
    String.prototype.includes = function() {
        'use strict';
        return String.prototype.indexOf.apply(this, arguments) !== -1;
    };
}
于 2015-07-10T12:33:47.593 に答える
0
import 'core-js/es7/array' 

polyfill.ts に入れました。

于 2020-07-23T21:56:26.820 に答える