再结合事件看如何改变函数的作用域:var myObject = {myFn : function() { console.log(this);}};$("#foo").click(myObject.myFn); // logs DOM element #foo$("#foo").click($.proxy(myObject, "myFn")); // logs myObjectJavaScript 本身有类型检测的方法,jQuery 中也有,并且做得更好:var myValue = [1, 2, 3];// 用 JavaScript 的 typeof 操作符来判断类型typeof myValue == "string"; // falsetypeof myValue == "number"; // falsetypeof myValue == "undefined"; // falsetypeof myValue == "boolean"; // false// 用恒等于 检测 nullmyValue === null; // false// 使用 jQuery 的方法来判断类型jQuery.isFunction(myValue); // falsejQuery.isPlainObject(myValue); // falsejQuery.isArray(myValue); // true向 HTML 元素添加额外的数据:$("#myDiv").data("keyName", { foo : "bar" });$("#myDiv").data("keyName"); // { foo : "bar" }所要添加的数据可以是任意类型:$("#myList li").each(function() {var $li = $(this), $p = $li.find("p.content");$li.data("contentDiv", $p);});// 不需要再去找那些 p 了;// 可以直接从 list 中读取出来var $firstLi = $("#myList li:first");$firstLi.data("contentDiv").html("new content");
更多相关内容: