【问题标题】:Doesn't jQuery('#id') do the same thing as document.getElementById('#id') in javascript? [duplicate]jQuery('#id') 与 javascript 中的 document.getElementById('#id') 不做同样的事情吗? [复制]
【发布时间】:2012-10-04 15:13:58
【问题描述】:

可能重复:
document.getElementById vs jQuery

我有一个函数,它将获取某个类(“jobStatus”)的所有跨度,并从中删除一个额外的类(“橙色”)。我从 SELECT onchange (onchange="chgJobstatus(this);") 调用该函数。效果很好。

但是,我试图让它在页面加载时根据所选值运行(这是服务器端动态生成的。)

这将起作用:

     $(document).ready(function(){
          chgJobstatus(document.getElementById("chgStatus"));
     });

这不起作用:

     $(document).ready(function(){
          chgJobstatus(jQuery('#chgStatus'));
     });

jQuery('#id') 不和 document.getElementById('#id') 做同样的事情吗??

【问题讨论】:

标签: javascript jquery


【解决方案1】:

关于选择元素,是的,但是jQuery选择器返回jQuery对象,getElementById返回一个DOM元素对象,你可以使用[index]get(index)方法获取DOM元素:

chgJobstatus(jQuery('#chgStatus')[0]);

【讨论】:

    【解决方案2】:

    这肯定会奏效。 jQuery(selector) 总是返回一个 jQuery 对象 (jQuery(selector) instanceof jQuery is true ) 。但是您可以使用 .get 或简单地使用类似数组的语法来获取本机 dom 元素,如下所示。

    $(document).ready(function(){
              chgJobstatus(jQuery('#chgStatus')[0]);
         });
    

    【讨论】:

      【解决方案3】:

      jQuery('#id') - 返回一个 jQuery 对象

      document.getElementById('#id') - 返回一个 HTML DOM 对象

      jQuery('#id').get(0); jQuery('#id')[0]; - 返回一个 HTML DOM 对象

      通过使用 jquery,它将允许您访问 jquery 函数。如果你阅读下面的链接,你会得到一个好主意。

      document.getElementById vs jQuery

      jQuery $() vs. document.getElementByID — differences

      getelementbyid-vs-jquery-id

      jquery-sharp-vs-getelementbyid

      getelementbyid-vs-jquery-id

      【讨论】:

        【解决方案4】:

        更重要的是,您应该知道 jQuery 返回的是对 jQuery 对象的引用,而不是对象本身。

        【讨论】:

          【解决方案5】:

          不,jQuery('#id') 返回一个 jquery 对象,带有附加的函数和属性。

          我不完全确定您要做什么,但这样的事情可以替代您描述的所有 javascript。

          $("#chgStatus")
            .bind("change", function() {
              $(".jobStatus").removeClass("orange");
            }).trigger("change");
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-03-07
            • 1970-01-01
            • 2020-10-28
            • 2021-05-02
            • 1970-01-01
            • 2011-09-17
            • 2020-09-28
            相关资源
            最近更新 更多