在實際開發中,jQuery的實踐性非常強大。上一篇本人已經整理出了一部分基礎知識點,該文即是對以上的補充和擴展。
//獲取文本框的值 //txt.value var val = $("#txt").val(); //沒有參數表示獲取值 //設置文本框的值 //txt.value = "123123"; $("#txt").val("這是val設置的值"); // 有參數表示設置值
// 設置屬性 $("#btnSetAttr").click(function () { // getAttribute // 用法跟 css 方法完全相同 // $("a").attr("title", "傳智播客"); //設置單個屬性 $("a").attr({ //設置多個屬性 "title": "傳智播客", "data-abc": "自定義屬性" }); });
// 獲取屬性 $("#btnGetAttr").click(function () { /*var a = $("a").attr("title"); console.log(a);*/ // $("a").attr("width"); });
// 設置選中/不選中 // input.checked = true; // input.checked = flase; $(id/class名).attr("checked",布爾值); // :checkbox 作用:獲取到所有復選框【注意】checked、selected、disabled要使用.prop()方法。
prop方法通常用來影響DOM元素的動態狀態,而不是改變的HTML屬性。
// 獲取內容 // 文本內容:js -> innerText / textContent $("button:eq(0)").click(function () { // text() 作用:獲取或者是設置內容 var txt = $("div").text(); alert(txt); }); // 設置文本內容 $("button:eq(1)").click(function () { // 設置內容,參數表示 要設置的內容 $("div").text("這是動態設置的內容"); }); // 獲取HTML內容 $("button:eq(2)").click(function () { alert($("div").html()); });
// 獲取高度 $("#getHeight").click(function () { /* var h = $("div").css("height"); console.log(h); // 200px 字符串 */ /* var h = $("div").height(); // 數值 h *= 2; console.log(h); */ }); // 設置高度 $("#setHeight").click(function () { // 參數:數值類型 // $("div").height(500); // 參數:字符串 // $("div").height("500"); $("div").height("500px"); });
// 獲取元素的坐標值 $("button:eq(0)").click(function () { // 不傳參數表示獲取 var offset = $("div").offset(); console.log(offset); // 返回值:{top: 29, left: 8} }); // 設置元素的坐標值 $("button:eq(1)").click(function () { // 注意:設置坐標值的時候,如果這個元素沒有定位或者定位為默認值 static // 那麼offset() 會把這個元素的定位設置為:position: relative; $("div").offset({ top: 200, left: 400 }); });
$("button").bind("click mouseenter", function() {}); // 第一個參數:表示事件的名稱 // 第二個參數:表示事件處理函數 // 綁定多個事件 $("button").bind({ click: function () {}, mouseenter: function () {} }); // 缺點:無法給動態創建出來的元素綁定事件
// 第一個參數:表示 一個選擇器,實際要觸發事件的元素 // 第二個參數:表示要觸發的事件名稱 // 第三個參數:表示 事件處理函數 $("div").delegate("p", "click", function() { var txt = $(this).text(); // 獲取當前元素的內容 });【說明】 ①事件是什麼時候綁定的? ——頁面加載就綁定了所有的事件 ②事件是什麼時候執行的? ——單擊事件:單擊; mouseenter:鼠標移上來的
// 第一個參數:表示要綁定的事件名稱 // 第二個參數:表示要觸發事件的元素(selector) // 第三個參數:表示事件處理函數 $("div").on("click", ".cls", function () { var txt = $(this).text(); // 獲取當前元素的內容 });
$("button:eq(1)").bind("click", function () { // 解除第一個按鈕綁定的事件 // 不傳參數,表示所有的事件都解綁了 // 穿參數,表示解綁 事件的名稱 //$("button").eq(0).unbind("click mouseenter"); // $("button").eq(0).undelegate(); }); // 注意:解綁事件的時候 是解除的綁定事件的元素
2)使用off 解綁
$("#btnOff").on("click", function () { // 解除第一個按鈕的事件綁定 // 參數:表示要解除事件的名稱 // 如果是解除多個事件,只需要把多個事件名稱以空格分割 作為一個字符串 $("#btn").off("click mouseenter"); // 如果不穿參數表示把所有的事件都解除綁定 $("div").off(); // 解除通過 代理 的方式綁定的事件 // 第一個參數表示:要解除事件的名稱 // 第二個參數表示:只解除通過代理方式綁定的事件 $("div").off("click", "**"); });
// 觸發文本框獲得焦點事件 // trigger() 作用:觸發事件,同時觸發了浏覽器的默認行為 $("#txt").trigger("focus"); // 參數:表示觸發事件的類型 // triggerHandler() 作用:只觸發事件,不觸浏覽器的發默認行為
2)
$(function () { // target 表示觸發事件的元素 並不一定是 this // currentTarget === this $("button").on("click", function (event) { console.log(event); }); $("div").on("click", function () { console.log(event); }); // ----------------------------------------------- $("div").on("click", "button", function () { // 此時, target為觸發事件的按鈕 // currentTarget 為綁定事件的元素 console.log(event); }); });
// 鏈式編程代碼示例 $(“li”).parent(“ul”).parent(“div”).siblings(“div”).children(“div”).html(“內容”); 鏈式編程原理:return this; 通常情況下,只有設置操作才能把鏈式編程延續下去。因為獲取操作的時候,會返回獲取到的相應的值,無法返回 this。 end(); // 結束當前鏈最近的一次過濾操作,並且返回匹配元素之前的一次狀態。
// 設置操作 $(“div”).css(“color”, “red”); // 獲取操作 $(“div”).css(“color”); // 返回第一個元素的值 // 隱式迭代的意思是:在方法的內部會為匹配到的所有元素進行循環遍歷,執行相應的方法;而不用我們再進行循環,簡化我們的操作,方便我們調用。 // 如果獲取的是多元素的值,大部分情況下返回的是第一個元素的值。
// each() 作用:進行遍歷 // 參數:是一個匿名函數 $("li").each(function (index, ele) { // index: 索引號 // ele : 表示元素本身 但是它是一個dom對象 // index : 0 1 2 3 .... 9 var opacity = (index + 1) / 10; // ele.style.opacity = opacity; $(ele).css("opacity", opacity); });
var j = $.noConflict(); // noConflict() 作用:讓jQuery釋放對$的控制權,讓其他庫能夠使用$符號,達到多庫共存的目的。此後,只能使用jQuery來調用jQuery提供的方法
jQuery.color.js // animate()自定義動畫:不支持背景的動畫效果 // animate動畫支持的屬性列表3)如何創建jQuery插件
http://learn.jquery.com/plugins/basic-plugin-creation/
// 全局jQuery函數擴展方法 $.pluginName = function() {}; // jQuery對象擴展方法 $.fn. pluginName = function() {};
官方API:http://api.jqueryui.com/category/all/
其他教程:jQueryUI教程
3)基本使用
<!--第一步:引樣式文件--> <link rel="stylesheet" href="plugins/jquery-ui.css"/> <!--第二步:引jQuery文件--> <script src="jquery-1.12.2.js"></script> <!--第三步:引jQueryUI的文件--> <script src="plugins/jquery-ui.js"></script>