-1

可能重复:
document.getElementById vs jQuery

我正在学习 jQuery 和 javascript。

  • 我想知道为什么$()jQuery 的功能没有取代document.getElementById()javascript 的功能。

  • 不就是角色$()吗?

  • 如果不是,它的作用是$()什么?

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

谢谢你。

4

4 回答 4

2

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

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

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

$(...)[0].outerHeight
于 2012-11-01T18:16:38.020 回答
1

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

您可以使用任何其他关键字而不是$by:

var jq = jQuery.noConflict();

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

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

于 2012-11-01T18:17:14.810 回答
0

第一个 $ 只是在 jquery 中使用了一个选择,基本上是 select(something),something 可以是类、id、html 标记等。

因此 $ 不仅仅用于选择 id

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

于 2012-11-01T18:16:51.410 回答
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
于 2012-11-01T18:16:52.753 回答