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

时间:2012-10-14 12:29:01

标签: javascript jquery

  

可能重复:
  document.getElementById vs jQuery

我有一个函数,它将占用某个类的所有跨度(“jobStatus”)并从中删除一个额外的类(“orange”)。我从SELECT onchange调用函数(onchange =“chgJobstatus(this);”)。它工作得很好。

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

这将有效:

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

这不起作用:

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

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

5 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

这肯定有用。 jQuery(selector)始终返回jQuery对象(jQuery(selector) instanceof jQuery is true )。但你可以使用.get获取原生dom元素,或者只使用类似数组的语法,如下所示。

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

答案 3 :(得分:0)

  

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

     

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

     

的jQuery( '#标识')得到(0); OR 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 :(得分:0)

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