[點晴永久免費OA]【JavaScript】jQuery中$()函數操作頁面各種效果
當前位置:點晴教程→點晴OA辦公管理信息系統
→『 經驗分享&問題答疑 』
jQuery對象是一個類數組的對象,含有連續的整形屬性以及一系列的jQuery方法。它把所有的操作都包裝在一個jQuery()函數中,形成了統一(也是惟一)的操作入口。 其中我們用的非常頻繁的一個函數是$()或者說是jQuery(),當我們調用他的時候會根據傳入的參數的不同而達到不同的效果。
構造函數jQuery()常見的7種用法 1.接受一個CSS選擇器表達式和可選的選擇器上下文,返回一個包含了匹配的DOM元素的jQuery對象。例如:$('.p'),$('.p','.content'); 2.接受HTML代碼創建DOM元素。例如:$('<p></p>'); 3.封裝DOM元素為jQuery對象。例如:$(this); 4.將普通對象封裝為jQuery對象,以便普通對象也可以調用jQuery對象的方法。例如:$(obj); 5.給ready事件綁定監聽函數。例如:$(function(){}); 6.接受一個jQuery對象,返回該jQuery對象的副本。例如 $($('p')); 7.創建一個空jQuery對象。例如$(); 參數是一個function, 入口函數 1 、jQuery(selector,context)
默認情況下,對匹配元素的查找都是從根元素ducument對象開始,也就是說查找范圍是整棵文檔樹。但是如果給定了上下文context,則在指定上下文中查找 <span>body span</span> $('span').css('background-color','red');//所有的span都會變紅 $('.wrap span').css('background-color','red');//只有.wrap中的span會變紅 2、jQuery(html,ownerDocument) 、jQuery(html,props)
對于jQuery(html,ownerDocument),參數html可以是單標簽或者是多層標簽之間的嵌套。第二個參數用于創建新DOM元素的文檔對象,如果不傳入則默認為當前的文檔對象。 //單標簽 兩種方式都可以往body中插入div 3 jQuery(element or elementsArray)
<ul> // 傳入DOM元素 4 jQuery(object)
var obj={name:'謙龍'}; 5 jQuery(callback)當傳進去的參數是函數的時候,則在document對象上綁定一個ready事件監聽函數,當DOM結構加載完成的時候執行 $(function(){ 6 jQuery(jQuery object)當傳進去的參數是一個jQuery對象的時候,則創建該jQuery對象的一個副本并返回。副本與傳入的jQuery對象引用完全相同的元素 var aLi=$('li'); 7 jQuery()
注意這個功能可以用來復用jQuery對象,例如可以創建一個空的jQuery對象,然后在需要的時候先手動修改其中的元素,然后在調用jQuery方法。從而避免重復創建jQuery對象。
綁定事件:$("a").click(funcTIon(){...}) 顯示其html內容:alert($("div>p").html()); $(document).find("div>p").html()); 添加新內容:$("Hello").appendTo("body"); $("#")是指選擇器選擇帶有 id的元素
jQuery中的“$”
1、jQuery對象構造函數【選擇器】 在CSS中選擇器的作用是選擇頁面中某一類元素或者某一個元素(ID選擇器),而jQuery中的"$"作為選擇器,同樣是選擇某一類或某一類元素。 <h2>標記下包含的所有子標記<a> h2 a { /*添加CSS屬性*/ } $("h2 a") 對象數組 $("#showDiv“) id選擇器,相當于javascript中的document.getElementById("#showDiv") $(".SomeClass") class選擇器,選擇CSS類別作為”SomeClass“的所有節點元素, 在javascript中要實現相同的選擇,需要用for循環遍歷整個DOM $("p : odd") 選擇所有位于奇數行的<p>標記, 幾乎所有的標記都可以使用": odd" 或者 ": even" 來實現奇偶的選擇 $("td:nth-child(1)") 所有表格行的第一個單元格,就是第一列。這在修改表格的某一列的屬性時是非常有用的。不再需要一行行遍歷表格 $("li > a") 子選擇器,返回<li>標記的所有子元素<a>,不包括孫標記 $("a[href$=pdf]") 選擇所有超鏈接,并且這些超鏈接的href屬性是以"pdf"結尾的。有了屬性選擇器,可以很好的選擇頁面中的各種特性元素
2、功能函數前綴 在javascript中,開發者經常要便攜一些小函數來處理各種操作細節,例如在用戶提交表單時,需要將文本框中的最前端和最末端的空格清理掉,javascript沒有提供類似trim()的功能,而引入jQuery后,便可以直接使用trim()函數,例如: $.trim(sString); jQuery.trim(sString); trim()是jQuery的全局函數。
3、解決window.onload函數的沖突 由于頁面的HMTL框架需要在頁面完全加載之后才能使用,因此在DOM編程時window.onload函數頻繁被使用。倘若頁面中有多處都需要使用該函數,或者其他.js文件中也包含window.onload函數,沖突問題十分棘手。jQuery中的ready()方法很好的解決了上述問題,它能夠自動將其中的函數在頁面加載完成后運行,并且同一個頁面中可以使用多個ready()方法,而且不互相沖突。例如: $(document).ready(function(){ $("table.datalist tr:nth-child(odd)").addClass("altrow"); }); 對于上述代碼jQuery還提供了簡寫,可以省略其中的"(document).ready"部分,代碼如下: $(function(){ $("table.datalist tr:nth-child(odd)").addClass("altrow"); });
4、創建DOM元素 利用DOM方法創建元素節點,通常需要將document.createElement()、document.createTextNode()、appendChild()配合使用,十分麻煩,而jQuery中使用"$"符號可以直接創建DOM元素。例如: var oNewP = $("<p>這是一個好故事</p>") 以上代碼等同于javascript中的如下代碼: var oNewP = document.createElement("p");// 新建節點 var oText = document.createTextNode("這是一個好故事"); oNewP.appendChild(oText);
另外,jQuery對象還提供了insertAfter()方法: $(function(){ var oNewP = $("<p>這是一個好故事</p>");// 創建DOM元素的JQuery對象 oNewP.insertAfter("#myTarget"); }); <body> <p id="myTarget">插入到這行文字之后</p> <p>也就是插入到這行文字之前,但這行沒有id,也可能不存在</p> </body>
5、自定義添加"$" jQuery不能滿足所有用戶的所有需求,且有一些特殊的需求十分小眾,也不適合放到整個jQuery框架中,用戶可以自定義該方法。代碼如下: $.fn.disable = function(){ return this.each(function(){ if(typeof this.disabled != "undefined") this.disabled = true; }); } 以上代碼首先設置"$.fn.disable",表明為"$"添加一個方法“disable()”,其中“$.fn”是擴展jQuery時所必須的,然后利用匿名函數定義這個方法,即用each()將調用這個方法的每個元素的disabled屬性均設置為true(如果該屬性存在)
6、解決"$"的沖突 如果其他框架也是用了“$",會引起沖突,jQuery同樣提供了noConflict()方法來解決"$"沖突問題: jQuery.noConflict(); 以上代碼可以使"$"按照其他javascript框架的方式運算,這時在jQuery中便不能再使用“$”,而必須使用jQuery,例如$("div p") 必須寫成jQuery("div p"). 1.接受一個CSS選擇器表達式和可選的選擇器上下文,返回一個包含了匹配的DOM元素的jQuery對象。例如:$('.p'),$('.p','.content'); 2.接受HTML代碼創建DOM元素。例如:$('<p></p>'); 3.封裝DOM元素為jQuery對象。例如:$(this); 4.將普通對象封裝為jQuery對象,以便普通對象也可以調用jQuery對象的方法。例如:$(obj); 5.給ready事件綁定監聽函數。例如:$(function(){}); 6.接受一個jQuery對象,返回該jQuery對象的副本。例如 $($('p')); 7.創建一個空jQuery對象。例如$();
該文章在 2023/4/28 15:49:54 編輯過 |
關鍵字查詢
相關文章
正在查詢... |