gpt4 book ai didi

javascript - 旧版本 IE 上的 Jquery 问题

转载 作者:行者123 更新时间:2023-11-30 09:01:53 27 4
gpt4 key购买 nike

我在 document.ready 函数中有以下语句:

  if($("sidebar ").html().trim().length == 0)
{
$("sidebar").append("<p>&nbsp;&nbsp;&nbsp;The sides..</p>");
};

它在 IE 9 中运行良好,但一旦我选择 IE 8(浏览器和文档标准),脚本就会停止运行并出现以下错误:

SCRIPT5007: Unable to get value of the property 'trim': object is null or undefined 
application-e51c9eee7d22e9644481115dc1fedd5f.js, line 7 character 17578

我在 Debug模式下查看了 .js,发现我上面的语句已转换为:

$("sidebar ").html().trim().length==0&&$("sidebar").append("<p>&nbsp;&nbsp;&nbsp;The sides..</p>")

如何防止此错误?请注意,我确实看到该节点存在于呈现的页面中。

我认为可能仅仅引用 shiv5.html 可能不足以处理 IE 的特性。因此,我通过 sprockets 添加了 modernizr.js,并在我的布局中添加了 class="no-js"。在 IE <9 中仍然没有运气。

我错过了什么?还有什么办法可以得到微软霸主的青睐?

最佳答案

根据 MDN,trim在 IE < 9 中不可用。

你可以使用 $.trim相反:

if($.trim($("sidebar ").html()).length == 0)
{
$("sidebar").append("<p>&nbsp;&nbsp;&nbsp;The sides..</p>");
} // <-- Don't want a semicolon here.

如果您不想找到 trim 的所有实例并更正它们,则 MDN 文章列出了一个替代方案。如果 .trim 本身不可用,您可以使用以下内容创建它:

if(!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g,'');
};
}

关于javascript - 旧版本 IE 上的 Jquery 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596630/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com