2

可能重复:
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') 相同的事情吗?

4

5 回答 5

9

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

chgJobstatus(jQuery('#chgStatus')[0]);
于 2012-10-14T12:33:19.977 回答
0

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

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

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

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

document.getElementById 与 jQuery

jQuery $() 与 document.getElementByID 的区别

getelementbyid-vs-jquery-id

jquery-sharp-vs-getelementbyid

getelementbyid-vs-jquery-id

于 2012-10-14T12:57:48.463 回答
0

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

于 2012-10-14T13:20:11.660 回答
0

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

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

$("#chgStatus")
  .bind("change", function() {
    $(".jobStatus").removeClass("orange");
  }).trigger("change");
于 2012-10-14T12:32:35.143 回答
0

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

$(document).ready(function(){
          chgJobstatus(jQuery('#chgStatus')[0]);
     });
于 2012-10-14T12:33:26.823 回答