【问题标题】:JQuery selector - #ElementId not working just ElementId is fineJQuery 选择器 - #ElementId 不工作只是 ElementId 很好
【发布时间】:2012-03-02 12:18:11
【问题描述】:

我在显示我隐藏的 div 时遇到了一些问题。出于某种原因,#ElementId 选择器不起作用,但如果我只使用 ElementId,它就可以工作。

Jquery 1.7.1 我也在使用 JQuery ui。

$('CreateGroup').show("fold"); // this works fine
$('#CreateGroup').show("fold"); // this fails with cannot call show on undefined

 <div id="CreateGroup" style="display: none">Hi!</div>

发生了什么事?

谢谢

【问题讨论】:

  • 你说的不可能——jsfiddle.net/EU3jN
  • 也许用无效的代码创建一个jsfiddle.net ...
  • @Piercy,你的$() 函数很可能来自 Prototype,而不是 jQuery。您是否在页面中包含这两个库?
  • $('#CreateGroup').show("fold");这有什么错误吗?我检查了我的演示,工作完美
  • 你说的没有道理,所以肯定有其他事情发生。您可以发布更多代码或复制 jsfiddle 中的行为吗?

标签: javascript jquery html jquery-ui jquery-selectors


【解决方案1】:

你确定调用函数时元素已经创建了吗?

试试这个以确保它在 DOM 准备好后运行:

$(window).ready(function() {
 $('#CreateGroup').show("fold");
});

更多信息:

.ready()

【讨论】:

    【解决方案2】:

    两者都应该失败。

    您的代码是不可能的,因为您没有使用document.loadevent(又名$(function(){});又名$('document').ready()

    调用脚本时节点尚未定义。

    但是这会起作用:

    <div id="CreateGroup" style="display: none">Hi!</div>
    <script type="text/javascript">$('#CreateGroup').show("fold");</script>
    

    因为它是在节点定义之后调用的。

    如果您使用提到的加载方法,您不必担心。

    <script type="text/javascript">
        $(function() {
            $('#CreateGroup').show("fold"); 
        });
    </script>
    
    <div id="CreateGroup" style="display: none">Hi!</div>
    

    这将起作用,因为脚本在整个文档加载完成之前不会执行。

    【讨论】:

      【解决方案3】:

      @Piercy,你的 $() 函数很可能来自 Prototype,而不是 jQuery。您是否在页面中包含这两个库? – Frédéric Hamidi 3 月 2 日 12:21

      这是正确的,它是原型干扰。如果我使用完整的 jQuery 限定符,它可以工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-03
        • 2020-11-01
        • 1970-01-01
        • 2021-09-09
        • 1970-01-01
        • 2018-07-21
        • 2018-04-05
        • 1970-01-01
        相关资源
        最近更新 更多