【问题标题】:JQuery - Object doesn't support property or method toLowerCaseJQuery - 对象不支持 toLowerCase 的属性或方法
【发布时间】:2018-01-11 05:30:48
【问题描述】:

我已经为这个问题苦苦挣扎了一个星期了。情况是这样的:
我一直致力于将 SharePoint 应用程序移出 SharePoint 并将其作为自己的网站。我们的 SharePoint 版本是 2007,我们需要对其进行升级。所以我的老板让我把它搬走。

我已经开发了一个 SharePoint 应用程序,并将其作为自己的网站,它运行良好。但是这个给我带来了很多麻烦!

我每次运行程序时都会收到此错误:

这与互联网上的其他任何东西都不一样。我在 SO 和许多其他论坛上搜索并阅读了很多帖子,但情况并不相同。应用程序在运行时在jquery-1.8.2.js 中的一行中中断。我没有写这个。我没有改变这一点。当我创建一个新的 ASP .Net 项目时,这在我的脚本列表中。

这是导致错误的行:

acceptData: function( elem ) {
    var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
    // nodes accept data unless otherwise specified; rejection can be conditional
    return !noData || noData !== true && elem.getAttribute("classid") === noData;
}

我是 ASP .Net 的初学者,完全不知道该往哪个方向发展。这是我已经尝试过的:

  1. 我打开了我从 SharePoint 移出的第一个应用程序,并尝试完全复制我在此处所做的工作。
  2. 我检查了我的包裹、我的参考资料以及所有需要检查的东西。
  3. 我尝试在 Chrome 而不是 IE 上运行该应用程序。应用程序不会中断并指出导致错误的行。但是,如果我在 Chrome 上打开开发人员工具,我仍然会看到该错误。这是它在 Chrome 中的样子:

同样,任何更改代码的建议都不是我想要的。这不是我的代码。我几乎可以肯定它与一些参考资料或只是我的应用程序的基本结构有关。

如果您需要更多信息,请询问我。我什至不知道该分享什么以使你们更容易帮助我。让我知道你想要什么信息,我会分享。

谢谢。

编辑 1:
console.log(elem.nodeName) 结果如下:

#document
function(a) {
    return a.nodeName.toLowerCase()
}

【问题讨论】:

  • elem的类型是什么?
  • acceptData: function( elem ) { 之后执行console.log(elem.nodeName) 并向我们展示你得到了什么
  • Again, any suggestions of changing the code is not what I am looking for. 我不完全确定这指的是什么。你一直说这不是你的代码。您是说您不想以任何方式修改脚本来解决问题吗?或者你是说你认为脚本没问题,但你调用它是错误的?
  • 这是一个 jQuery 错误。为什么它发生似乎是由于 window.nodeName 被定义到这个元素(它没有 toLowerCase 方法,因为它是一个元素),因为具有这个 id 的元素存在。您可以将您的 jQuery 版本更改为 2.02+ 并检查吗?
  • @Tushar 做到了!如果您想将您的回复作为答案发布,我可以将其标记为答案。非常感谢!

标签: jquery asp.net


【解决方案1】:

这是一个 jQuery 错误。为什么它发生似乎是由于 window.nodeName 被定义到这个元素(它没有 toLowerCase 方法,因为它是一个元素),因为具有这个 id 的元素存在。

将您的 jQuery 版本更改为 2.02+ 并检查

【讨论】:

    猜你喜欢
    • 2019-03-29
    • 2013-03-23
    • 2015-11-21
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多