我正在学习jQuery和javascript。
我想知道为什么jQuery的$()
函数不会取代javascript的document.getElementById()
函数。
这不是$()
的作用吗?
如果没有,$()
的作用是什么?
我遇到了这个问题,因为$().outerHeight
不起作用。
谢谢。
答案 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