1.JS中 $ 的含义及用法
$:获取指定网页元素的函数
-
$()
可以是$(expresion)
,即css选择器、Xpath或html元素,也就是通过上述表达式来匹配目标元素。$("a")
构造的这个对象,是用CSS选择器构建了一个jQuery对象——它选择了所有的<a/>
这个标签。如:
$("a").click(function(){...})
就是在点击页面上的任何一个链接时的触发事件。确切地说,就是jQuery用
<a/>
这个标签构建了一个对象$("a")
,函数click()
是这个jQuery对象的一个(事件)方法。 -
$()
可以是$(element)
,即一个特定的DOM元素。如常用的DOM对象有document、location、form等。如这样一行代码:
$(document).find("div>p").html());
$()
中的document是一个DOM元素,即在全文寻找带<p>
的<div>
元素,并显示<p>
中的内容。 -
$()
可以是$(function)
,即一个函数,它是$(document).ready()
的一个速记方式。如常见的形式是这样的:
$(document).ready(function(){ alert("Hello world!"); });
$(alert("Hello world!"));
均会弹出
Hello world!
2. ()()立即执行函数
声明一个函数,并马上调用这个匿名函数就叫做立即执行函数
不要让function出现在行首,让JS引擎将其理解为一个表达式,最简单的处理就是将其放在一个圆括号里:
(function(){
//code
}())
(function (){
//code
})()
// 两个是相同的
1). 立即执行函数的作用
-
不必为函数命名,避免了污染全局变量
-
立即执行函数内部形成了一个单独的作用域,可以封装一些外部无法读取的私有变量
<body> <ul id="list"> <li>公司简介</li> <li>联系我们</li> <li>营销网络</li> </ul> <script> var list = document.getElementById("list"); var li = list.children; for(var i = 0 ;i<li.length;i++){ ( function(j){ li[j].onclick = function(){ alert(j); })(i); 把实参i赋值给形参j } } </script> </body>
-
封装变量
2). 参数
(function(j){
//代码中可以使用j
})(i)
i 实参,j 形参;
3). 返回值
除了可以返回基本类型值以外,立即执行函数也能返回任何类型的值,比如对象,函数。