document.getElementById()vs $()

时间:2012-11-01 18:13:20

标签: javascript jquery

  

可能重复:
  document.getElementById vs jQuery

我正在学习jQuery和javascript。

  • 我想知道为什么jQuery的$()函数不会取代javascript的document.getElementById()函数。

  • 这不是$()的作用吗?

  • 如果没有,$()的作用是什么?

我遇到了这个问题,因为$().outerHeight不起作用。

谢谢。

4 个答案:

答案 0 :(得分:2)

$接受选择器,HTML字符串和常规JS对象。 getElementById仅接受元素的id属性。他们做了不同的事情。

您尝试访问DOM对象属性,但是来自jQuery对象。 jQuery对象包装DOM对象,但它们不能替换它们。

要访问DOM对象,您可以使用$(...)[0](或$(...).get(0)),您的代码应该可以正常运行:

$(...)[0].outerHeight

答案 1 :(得分:1)

1)$()是您访问jQuery中任何元素的方式。

您可以使用任何其他关键字代替$

var jq = jQuery.noConflict();

执行上述命令时,元素访问器变为jq()

2)$()并不真正取代document.getElementById()。但是是$('#'+id)取而代之。由于$('.'+class)也可以工作,这不是DOM的原始属性,我只想再说$()就是你访问jQuery中任何元素的方式。

答案 2 :(得分:0)

$的第一个只是在jquery中使用select基本上选择(某事)而且某些东西可以是class,id,html标签等。

因此$不仅用于选择id

这是使用outerHeight的当前语法 http://api.jquery.com/outerHeight/

答案 3 :(得分:0)

$()使用参数调用jQuery函数。参数是一个选择器,它不必是ID。选择器按DOM树路径,按类,按属性,按ID,按标记名称等进行选择。因此jQuery函数绝不等同于document.getElementById()

jQuery函数总是返回一个jQuery对象,document.getElementById()返回一个DOM元素或null

对于jQuery中的outerHeight,您可以使用:

$('#Id').outerHeight(true); // Outer height with margins
$('#Id').outerHeight(); // Outer height without margins