【问题标题】:jQuery $('.classname').length fails, but $.find('.classname').length works, why?jQuery $('.classname').length 失败,但 $.find('.classname').length 有效,为什么?
【发布时间】:2012-04-11 01:31:26
【问题描述】:

即使元素存在,我的 JavaScript 模块也无法使用 $('.classname') 找到具有类名的特定 DOM 元素。

$('.classname').length 返回 0,而 $.find('.classname').length 返回 1。

网站还包含其他 JavaScript 模块。

谁能帮我找出为什么会这样?

我的 jQuery 版本是 1.7.1。

重现这个 1- 访问 avc.com
2- 打开控制台。
3-将以下代码粘贴到控制台中。

var head = document.getElementsByTagName("head")[0];  
var script = document.createElement("script");  
script.type = "text/javascript";  
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";  
script.async = true;  
head.appendChild(script);

4- 试试
$('.pkg').length$.find('.pkg').length

从这里http://i.imgur.com/4UDHz.png找到屏幕截图

还有一点,如果你在其他一些网站上试试这个,它可以正常工作。

【问题讨论】:

  • 在你的页面上:alert(jQuery == $) 给你一个 true 值吗?
  • @SheikhHeera 你能试一试吗,我已经更新了我的问题

标签: jquery find classname


【解决方案1】:

您可能与其他 JavaScript 模块发生冲突。查看 jQuery noconflict

许多 JavaScript 库使用 $ 作为函数或变量名,只是 就像 jQuery 一样。在 jQuery 的例子中,$ 只是 jQuery 的别名,所以 所有功能都可以在不使用 $ 的情况下使用。如果我们需要使用 jQuery 旁边的另一个 JavaScript 库,我们可以返回对 $ 通过调用 $.noConflict() 回到另一个库

尝试使用

jQuery('.classname').length

【讨论】:

  • 它不起作用。我已经使用了noconflict。我的问题是为什么 $('.classname').length 返回 0 而同样的 $.find('.classname').length 返回 1
  • 您可以尝试在 jsfiddle 中复制您的问题吗?
  • 我正在开发一个将 JavaScript 注入所有网站的扩展。我注意到 avc.com 会发生这种情况。这是发生的情况的屏幕截图 - i.imgur.com/4UDHz.png 重现此转到 avc.com 打开控制台。粘贴以下代码。 'var head = document.getElementsByTagName("head")[0]; var script = document.createElement("script"); script.type = "文本/javascript"; script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"; script.async = true; head.appendChild(脚本);'然后尝试 $('.pkg').length $.find('.pkg').length
猜你喜欢
  • 1970-01-01
  • 2011-09-26
  • 2018-03-21
  • 2014-09-09
  • 2019-10-08
  • 2021-08-31
  • 2016-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多