2012-10-14 22 views
2

可能重复:
document.getElementById vs jQuery不是jQuery('#id')在javascript中与document.getElementById('#id')做同样的事情吗?

我将采取所有某一类(“jobStatus”)的跨度的函数,并从中删除其他类(“橙色” )。我从SELECT onchange(onchange =“chgJobstatus(this);”)调用该函数。它运作良好。

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

这将工作:

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

这将不起作用:

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

没有的jQuery( '#ID')做同样的事情的document.getElementById( '#ID')?

+0

检查此:http://stackoverflow.com/questions/4069982/document-getelementbyid-vs-jquery –

+0

我相信只有$加载,除非你调用noConflict()。 –

+0

你说元素是由类“jobStatus”选择的,你为什么选择ID呢? – jbabey

回答

9

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

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

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

我不完全确定你要做什么,但是像这样的东西可以代替你所描述的所有JavaScript。

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

这必将工作。 jQuery(selector)总是返回一个jQuery对象(jQuery(selector) instanceof jQuery is true)。但你可以使用.get或者简单地使用类似下面的数组语法来获得本地dom元素。

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

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

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

的jQuery( '#ID' )获得(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

0

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

相关问题