我正在学习 jQuery 和 javascript。
我想知道为什么
$()
jQuery 的功能没有取代document.getElementById()
javascript 的功能。不就是角色
$()
吗?如果不是,它的作用是
$()
什么?
我遇到了这个问题,因为$().outerHeight
它不起作用。
谢谢你。
我正在学习 jQuery 和 javascript。
我想知道为什么$()
jQuery 的功能没有取代document.getElementById()
javascript 的功能。
不就是角色$()
吗?
如果不是,它的作用是$()
什么?
我遇到了这个问题,因为$().outerHeight
它不起作用。
谢谢你。
$
接受选择器、HTML 字符串和常规 JS 对象。getElementById
只接受id
元素的属性。他们做不同的事情。
您正在尝试访问 DOM 对象属性,但来自 jQuery 对象。jQuery 对象包装 DOM 对象,但它们不会替换它们。
要访问 DOM 对象,您可以使用$(...)[0]
(或$(...).get(0)
),您的代码应该可以正常工作:
$(...)[0].outerHeight
1)$()
是您在 jQuery 中访问任何元素的方式。
您可以使用任何其他关键字而不是$
by:
var jq = jQuery.noConflict();
当您执行上述命令时,元素访问器变为jq()
.
2)$()
并没有真正取代document.getElementById()
. 但是,是$('#'+id)
的取代了它。由于$('.'+class)
也可以工作,这不是 DOM 的原始属性,我只想再说一遍,它$()
是您访问 jQuery 中任何元素的方式。
第一个 $ 只是在 jquery 中使用了一个选择,基本上是 select(something),something 可以是类、id、html 标记等。
因此 $ 不仅仅用于选择 id
这是使用 outerHeight http://api.jquery.com/outerHeight/的当前语法
$() 正在调用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