什么可能导致 JQuery 选择器损坏?
我试图使用 JQuery 的选择器获取一个元素,但即使该元素实际存在,它也找不到它。 此外,我实际上可以使用 getElementById 找到该元素。
例如:
$('#outputDiv') 给我一个空值。 但是 document.getElementById("outputDiv") 返回我试图访问的 Div。
任何想法?
I am trying to get an element using JQuery's selector, but it does not find it even though the element actually exists. Moreover, I can actually find the element using getElementById.
For example:
$('#outputDiv') gives me a null value. But document.getElementById("outputDiv") returns me the Div I was trying to access.
Any idea?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
检查 jQuery 是否实际加载。 您是否使用 Firebug 或其他调试器进行过测试? 是否报告 JavaScript 错误? 您是否使用另一个使用 $ 作为别名的库?
Check that jQuery is actually loaded. Have you tested with Firebug or another debugger? Are javascript errors reported? Do you use another library that uses $ as an alias?
您是否使用任何其他可能使 $ 过载的库? 我知道例如原型就是这样做的。
您可能想尝试发出 jQuery('#outputDiv') 来查看它是否实际上是您正在调用的 jQuery。
Are you using any other libraries that might overload $ ? I know that e.g. that Prototype does this.
You might want to try issuing a jQuery('#outputDiv') instead to see if it is actually jQuery that you are invoking.
如果您使用 IE7,事情发生的顺序非常重要,如果预先声明了 jQuery 脚本(即在 head 元素中),选择器往往不适用于动态生成的内容。
我们解决这个问题的一个方法是将代码放在文档的末尾。 尽管这听起来很奇怪,但 MS 将其记录为已存在多年的错误。
If you're using IE7 the order of when things happen are very important, and selectors don't tend to work for dynamically generated content if the jQuery script is declared beforehand, i.e. in the head element.
A way we got around this was to place the code at the end of the document. As weird as this sounds, it is documented by MS as a bug that's existed for many years.