我正在将 jQuery 用于网站上的动态内容行为。我有一个错误:
TypeError: $("#id").attr("src", thisContent.attr("data-attr")).show 不是函数
首先,我认为它与浏览器有关,但事实证明并非如此。错误在这一行:
$('#id').attr('src', thisContent.attr('data-attr')).show();
我正在将 jQuery 用于网站上的动态内容行为。我有一个错误:
TypeError: $("#id").attr("src", thisContent.attr("data-attr")).show 不是函数
首先,我认为它与浏览器有关,但事实证明并非如此。错误在这一行:
$('#id').attr('src', thisContent.attr('data-attr')).show();
如果第二个参数.attr()
是undefined
getter 将被调用。似乎调用了 getter 而不是 setter。
吸气剂:
$(...).attr(String) // returns String which has no method .show()
二传手:
$(...).attr(String, String) // returns jQuery object, which has method .show()
thisContent.attr('data-attr')
在某些情况下可能会返回undefined
,因此会调用 getter 而不是所需的 setter 方法。
试试下面的。
将您的数据属性重命名为其他名称。
查看 thisContect.attr 中是否存在 data-attr。
记录以下行并转到控制台。在那里,您将看到 data-attr 不存在或位于错误的位置。
console.log(thisContent);
随机问题,但可以肯定...
你是通过他们的 CDN 访问 jQuery 吗?
如果是,两台机器都可以正常加载 jQuery 代码吗?两者都可以毫无问题地看到 CDN(都连接到互联网)?和其他一些 jQuery 代码正在工作?
浏览器在渲染/处理 JS 的方式上会有所不同是非常罕见的,因为它是一种非常成熟的语言。所以我的建议是,它不是基于浏览器的问题,而是你的代码之外的东西。
只是一个想法..