function $(o)
{
return typeof(o) == "string"?document.getElementById(o):o;//获取对象
}
这个是什么意思?还有就是$(o)这个是一个整体吗?它代表函数名吗?
{
return typeof(o) == "string"?document.getElementById(o):o;//获取对象
}
这个是什么意思?还有就是$(o)这个是一个整体吗?它代表函数名吗?
参数是一个字符串
然后通过这个字符以doucment.getElementId串获得这个元素并返回
跟F(o)
一个路子。就是一个合法标识符。
那什么是标识符呢?
标识符是指JavaScript中定义的符号,例如,变量名、函数名、数组名……标识符可以由任意顺序的大小字母、数字、下划线( _ )和美元符号组成,但标识符不能以数字开头,不能是JavaScript中的保留关键字。
这里边所有的能取的最简单易读性最好的就是美元符号,也因为prototype.js最早实现了这一点,所以才被大众所接受,被jquery发掘广大。/**
* 得到节点元素的集合,可返回多个数组
*/
function $(){
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments;
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}jquery:var $ = jQuery;
var jQuery = function(a,c) {
// If the context is global, return a new object
if ( window == this )
return new jQuery(a,c); // Make sure that a selection was provided
a = a || document;
// HANDLE: $(function)
// Shortcut for document ready
// Safari reports typeof on DOM NodeLists as a function
if ( jQuery.isFunction(a) && !a.nodeType && a[0] == undefined )
return new jQuery(document)[ jQuery.fn.ready ? "ready" : "load" ]( a );
// Handle HTML strings
if ( typeof a == "string" ) {
var m = /^[^<]*(<.+>)[^>]*$/.exec(a); a = m ?
// HANDLE: $(html) -> $(array)
jQuery.clean( [ m[1] ] ) :
// HANDLE: $(expr)
jQuery.find( a, c );
}
return this.setArray(
// HANDLE: $(array)
a.constructor == Array && a || // HANDLE: $(arraylike)
// Watch for when an array-like object is passed as the selector
(a.jquery || a.length && a != window && !a.nodeType && a[0] != undefined && a[0].nodeType) && jQuery.makeArray( a ) || // HANDLE: $(*)
[ a ] );
};成也萧何,败也萧何。prototype因为$而牛B于江湖无人敢追。
[i]如果单独写这个,在加载jquery会与jquery的$冲突。
{
return typeof(o) == "string"?document.getElementById(o):o;//如果变量o是字符串 那么返回id为o值的dom元素 否则返回o本身
}