我正在使用以下代码。它在 Chrome、Firefox 或 Edge 等浏览器中完美运行。但是,当我签入 IE11 时,它不起作用并破坏了所有功能。
var href = jQuery(this).attr('href');
if (href.includes('#')) {
// action
}
我认为 includes()
在 IE11 中不起作用。有解决办法吗?
原文由 rajausman haider 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在使用以下代码。它在 Chrome、Firefox 或 Edge 等浏览器中完美运行。但是,当我签入 IE11 时,它不起作用并破坏了所有功能。
var href = jQuery(this).attr('href');
if (href.includes('#')) {
// action
}
我认为 includes()
在 IE11 中不起作用。有解决办法吗?
原文由 rajausman haider 发布,翻译遵循 CC BY-SA 4.0 许可协议
includes
Internet Explorer(或 Opera)不支持
相反,您可以使用 indexOf
。 #indexOf
如果在字符串中则返回子串第一个字符的索引,否则返回-1。 (很像数组等价物)
尝试以下操作:
var href = jQuery(this).attr('href');
if(href.indexOf('#') > -1) //this will true if the string contains #
{
// action
}
这是所有浏览器都支持的。 这 是您的问题的好读物:)
原文由 Muhammad Qasim 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
4 回答2.7k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
问题是因为
includes()
在所有版本的 IE 中不受支持: MDN 参考相反,您可以使用更广泛支持的
indexOf()
:您还可以将其原型化以将
includes()
方法添加到 IE: