javascript - includes() 不适用于所有浏览器

标签 javascript function internet-explorer methods microsoft-edge

这是我的代码块。它在 FireFox 和 Chrome 中完美运行。但不是在 IE 中。我收到错误消息“对象不支持‘包含’的属性或方法

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)"
        })
    }
}

我可以稍微改变一下并使用 vanilla JS 并执行以下操作:

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

但在更改 JS 和编辑 HTML 和 CSS 之前,我宁愿看看是否有办法让它在 IE 中工作。

最佳答案

如果您查看 includes() 的文档, 大多数浏览器不支持此属性。

在使用 toString() 将属性转换为字符串后,您可以使用广泛支持的 indexOf():

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

您还可以使用 MDN 中的 polyfill .

if (!String.prototype.includes) {
    String.prototype.includes = function() {
        'use strict';
        return String.prototype.indexOf.apply(this, arguments) !== -1;
    };
}

关于javascript - includes() 不适用于所有浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31340868/

相关文章:

c++ - 如何将我的程序指向我输入到列表中的值? C++

javascript - setInterval() 同时执行的两个函数会互相减慢

javascript - IE 9 无法在脚本之间传递变量

image - 当响应 header 在 IE 和 Fiddler 中具有正确长度时为空图像响应正文

javascript - 由侧面菜单向上推的 slider

javascript - SetInterval 脚本应用于多个元素

javascript - 如何使用 jquery 在 svg 之前附加图标?

javascript - 如何使我的函数在 Node js 中具有循环同步

function - Lua 中的三元运算符(函数)

javascript - 如何在不访问头部的情况下链接条件样式表